From 03b3c7e8ee23e8ede54e85f7cb9ae735ed8c5ed9 Mon Sep 17 00:00:00 2001 From: Jason Pickering Date: Wed, 10 Jun 2026 21:44:15 +0200 Subject: [PATCH] fix: compress audit log archives on rollover [DHIS2-21620] (#24188) The dhis-audit.log RollingFileAppender sets BEST_COMPRESSION but its filePattern was ".%i", which has no compression suffix. Log4j2 triggers archive compression solely via the filePattern suffix (.gz/.zip); compressionLevel only selects the level when such a suffix is present. As a result the configured compression never ran and, with withFileIndex("nomax"), audit archives accumulated uncompressed and unbounded -- filling the log directory (315 GB observed in production). Add the .gz suffix so the already-configured BEST_COMPRESSION takes effect and each midnight rollover produces a gzip-compressed archive. Co-authored-by: Claude Opus 4.8 (1M context) --- .../org/hisp/dhis/system/log/Log4JLogConfigInitializer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/log/Log4JLogConfigInitializer.java b/dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/log/Log4JLogConfigInitializer.java index 6870084ae5f7..4d6f257c4155 100644 --- a/dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/log/Log4JLogConfigInitializer.java +++ b/dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/log/Log4JLogConfigInitializer.java @@ -166,7 +166,7 @@ private void addConfigurableAuditLog(String filename, List packages) { RollingFileAppender.newBuilder() .withFileName(file) .setName("appender_" + file) - .withFilePattern(file + ".%i") + .withFilePattern(file + ".%i.gz") .setLayout(PATTERN_LAYOUT) .withPolicy( CronTriggeringPolicy.createPolicy(getLogConfiguration(), "true", "0 0 0 * * ?"))