Skip to content

Commit 688f494

Browse files
committed
Add clean-history-on-start and total-size-cap rolling policy properties for Log4j2
Add CLEAN_HISTORY_ON_START and TOTAL_SIZE_CAP to Log4j2's RollingPolicySystemProperty enum so that log4j2 users can configure these rolling policy settings via application properties, matching the existing support in logback's RollingPolicySystemProperty. See gh-46468 Signed-off-by: yangzhice <a13644015167@qq.com>
1 parent c731cfd commit 688f494

3 files changed

Lines changed: 18 additions & 2 deletions

File tree

core/spring-boot/src/main/java/org/springframework/boot/logging/log4j2/Log4j2LoggingSystemProperties.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,9 @@ protected void apply(@Nullable LogFile logFile, PropertyResolver resolver) {
6363

6464
private void applyRollingPolicyProperties(PropertyResolver resolver) {
6565
applyRollingPolicy(RollingPolicySystemProperty.FILE_NAME_PATTERN, resolver);
66+
applyRollingPolicy(RollingPolicySystemProperty.CLEAN_HISTORY_ON_START, resolver, Boolean.class);
6667
applyRollingPolicy(RollingPolicySystemProperty.MAX_FILE_SIZE, resolver, DataSize.class);
68+
applyRollingPolicy(RollingPolicySystemProperty.TOTAL_SIZE_CAP, resolver, DataSize.class);
6769
applyRollingPolicy(RollingPolicySystemProperty.MAX_HISTORY, resolver);
6870
applyRollingPolicy(RollingPolicySystemProperty.STRATEGY, resolver);
6971
applyRollingPolicy(RollingPolicySystemProperty.TIME_INTERVAL, resolver, Integer.class);

core/spring-boot/src/main/java/org/springframework/boot/logging/log4j2/RollingPolicySystemProperty.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,17 @@ public enum RollingPolicySystemProperty {
6161
/**
6262
* Logging system property for the cron based schedule.
6363
*/
64-
CRON("cron");
64+
CRON("cron"),
65+
66+
/**
67+
* Logging system property for the clean history on start flag.
68+
*/
69+
CLEAN_HISTORY_ON_START("clean-history-on-start"),
70+
71+
/**
72+
* Logging system property for the file total size cap.
73+
*/
74+
TOTAL_SIZE_CAP("total-size-cap");
6575

6676
private final String environmentVariableName;
6777

core/spring-boot/src/test/java/org/springframework/boot/logging/log4j2/Log4j2LoggingSystemPropertiesTests.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ void appliesLog4j2RollingPolicyProperties() {
6868
this.environment.setProperty("logging.log4j2.rollingpolicy.time-interval", "2");
6969
this.environment.setProperty("logging.log4j2.rollingpolicy.time-modulate", "true");
7070
this.environment.setProperty("logging.log4j2.rollingpolicy.cron", "0 0 1 * * ?");
71+
this.environment.setProperty("logging.log4j2.rollingpolicy.clean-history-on-start", "true");
72+
this.environment.setProperty("logging.log4j2.rollingpolicy.total-size-cap", "1GB");
7173

7274
new Log4j2LoggingSystemProperties(this.environment).apply(null);
7375

@@ -78,7 +80,9 @@ void appliesLog4j2RollingPolicyProperties() {
7880
.containsEntry("LOG4J2_ROLLINGPOLICY_STRATEGY", "time")
7981
.containsEntry("LOG4J2_ROLLINGPOLICY_TIME_INTERVAL", "2")
8082
.containsEntry("LOG4J2_ROLLINGPOLICY_TIME_MODULATE", "true")
81-
.containsEntry("LOG4J2_ROLLINGPOLICY_CRON", "0 0 1 * * ?");
83+
.containsEntry("LOG4J2_ROLLINGPOLICY_CRON", "0 0 1 * * ?")
84+
.containsEntry("LOG4J2_ROLLINGPOLICY_CLEAN_HISTORY_ON_START", "true")
85+
.containsEntry("LOG4J2_ROLLINGPOLICY_TOTAL_SIZE_CAP", String.valueOf(DataSize.ofGigabytes(1).toBytes()));
8286
}
8387

8488
@Test

0 commit comments

Comments
 (0)