From 27cb3646c06dc4d9234e95af875cecc4c3851a9c Mon Sep 17 00:00:00 2001 From: Daan Hoogland Date: Mon, 1 Jul 2024 16:15:46 +0200 Subject: [PATCH] create rotate file on the fly --- .../org/apache/cloudstack/ServerDaemon.java | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/client/src/main/java/org/apache/cloudstack/ServerDaemon.java b/client/src/main/java/org/apache/cloudstack/ServerDaemon.java index 196695e1fc6..26f033bf23a 100644 --- a/client/src/main/java/org/apache/cloudstack/ServerDaemon.java +++ b/client/src/main/java/org/apache/cloudstack/ServerDaemon.java @@ -18,10 +18,7 @@ // package org.apache.cloudstack; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; +import java.io.*; import java.lang.management.ManagementFactory; import java.net.URL; import java.util.Arrays; @@ -333,9 +330,31 @@ public class ServerDaemon implements Daemon { log.setAppend(true); log.setLogTimeZone("GMT"); log.setLogLatency(true); + createRotateFile(logPath); return log; } + private void createRotateFile(File logPath) { + String rotatefile = "/etc/logrotate/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); }