diff --git a/client/src/main/java/org/apache/cloudstack/ServerDaemon.java b/client/src/main/java/org/apache/cloudstack/ServerDaemon.java index 196695e1fc6b..af608891b015 100644 --- a/client/src/main/java/org/apache/cloudstack/ServerDaemon.java +++ b/client/src/main/java/org/apache/cloudstack/ServerDaemon.java @@ -20,8 +20,9 @@ import java.io.File; import java.io.FileInputStream; -import java.io.IOException; +import java.io.FileWriter; import java.io.InputStream; +import java.io.IOException; import java.lang.management.ManagementFactory; import java.net.URL; import java.util.Arrays; @@ -333,9 +334,31 @@ private RequestLog createRequestLog() { log.setAppend(true); log.setLogTimeZone("GMT"); log.setLogLatency(true); + createRotateFile(logPath); return log; } + private void createRotateFile(File logPath) { + String rotatefile = "/etc/logrotate.d/access"; + String fileContents = logPath.getAbsolutePath() + " {\n" + + " copytruncate" + + " daily" + + " rotate 14" + + " compress" + + " missingok" + + " create 0644 cloud cloud" + + "}"; + File rotateConfigFile = new File(rotatefile); + try { + FileWriter fw = new FileWriter(rotateConfigFile); + fw.write(fileContents); + fw.close(); + } catch (IOException e) { + // log but continue without rotate (for now) + LOG.warn("no way to rotate access log, continuing as is"); + } + } + private URL getResource(String aResource) { return Thread.currentThread().getContextClassLoader().getResource(aResource); }