Skip to content

Commit f0327fb

Browse files
committed
Polish SizeAndTimeBasedRollingPolicy changes
Closes gh-6352
1 parent 991468b commit f0327fb

File tree

3 files changed

+23
-19
lines changed

3 files changed

+23
-19
lines changed

spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1624,11 +1624,13 @@ To help with the customization, some other properties are transferred from the S
16241624

16251625
|`logging.file.max-size`
16261626
|`LOG_FILE_MAX_SIZE`
1627-
|Maximum log file size (if LOG_FILE enabled). (Only supported with the default logback setup.)
1627+
|Maximum log file size (if LOG_FILE enabled). (Only supported with the default logback
1628+
setup.)
16281629

16291630
|`logging.file.max-history`
16301631
|`LOG_FILE_MAX_HISTORY`
1631-
|Maximum number of archive log files to keep (if LOG_FILE enabled). (Only supported with the default logback setup.)
1632+
|Maximum number of archive log files to keep (if LOG_FILE enabled). (Only supported with
1633+
the default logback setup.)
16321634

16331635
|`logging.path`
16341636
|`LOG_PATH`
@@ -1655,7 +1657,6 @@ To help with the customization, some other properties are transferred from the S
16551657
environment variable).
16561658
|===
16571659

1658-
16591660
All the supported logging systems can consult System properties when parsing their
16601661
configuration files. See the default configurations in `spring-boot.jar` for examples:
16611662

spring-boot-project/spring-boot/src/main/java/org/springframework/boot/logging/logback/DefaultLogbackConfiguration.java

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -149,11 +149,20 @@ private Appender<ILoggingEvent> fileAppender(LogbackConfigurator config,
149149

150150
private void setRollingPolicy(RollingFileAppender<ILoggingEvent> appender,
151151
LogbackConfigurator config, String logFile) {
152-
SizeAndTimeBasedRollingPolicy<ILoggingEvent> rollingPolicy =
153-
new SizeAndTimeBasedRollingPolicy<>();
152+
SizeAndTimeBasedRollingPolicy<ILoggingEvent> rollingPolicy = new SizeAndTimeBasedRollingPolicy<>();
154153
rollingPolicy.setFileNamePattern(logFile + ".%d{yyyy-MM-dd}.%i.gz");
155-
String maxFileSize = this.patterns.getProperty("logging.file.max-size",
156-
MAX_FILE_SIZE);
154+
setMaxFileSize(rollingPolicy,
155+
this.patterns.getProperty("logging.file.max-size", MAX_FILE_SIZE));
156+
rollingPolicy.setMaxHistory(this.patterns.getProperty("logging.file.max-history",
157+
Integer.class, CoreConstants.UNBOUND_HISTORY));
158+
appender.setRollingPolicy(rollingPolicy);
159+
rollingPolicy.setParent(appender);
160+
config.start(rollingPolicy);
161+
}
162+
163+
private void setMaxFileSize(
164+
SizeAndTimeBasedRollingPolicy<ILoggingEvent> rollingPolicy,
165+
String maxFileSize) {
157166
try {
158167
rollingPolicy.setMaxFileSize(FileSize.valueOf(maxFileSize));
159168
}
@@ -163,12 +172,6 @@ private void setRollingPolicy(RollingFileAppender<ILoggingEvent> appender,
163172
SizeAndTimeBasedRollingPolicy.class, "setMaxFileSize", String.class);
164173
ReflectionUtils.invokeMethod(method, rollingPolicy, maxFileSize);
165174
}
166-
int maxHistory = this.patterns.getProperty("logging.file.max-history",
167-
Integer.class, CoreConstants.UNBOUND_HISTORY);
168-
rollingPolicy.setMaxHistory(maxHistory);
169-
appender.setRollingPolicy(rollingPolicy);
170-
rollingPolicy.setParent(appender);
171-
config.start(rollingPolicy);
172175
}
173176

174177
}

spring-boot-project/spring-boot/src/test/java/org/springframework/boot/logging/logback/LogbackLoggingSystemTests.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,8 @@ public void withFile() throws Exception {
128128
assertThat(getLineWithText(file, "Hello world")).contains("INFO");
129129
assertThat(ReflectionTestUtils.getField(getRollingPolicy(), "maxFileSize")
130130
.toString()).isEqualTo("10 MB");
131-
assertThat(getRollingPolicy().getMaxHistory()).isEqualTo(
132-
CoreConstants.UNBOUND_HISTORY);
131+
assertThat(getRollingPolicy().getMaxHistory())
132+
.isEqualTo(CoreConstants.UNBOUND_HISTORY);
133133
}
134134

135135
@Test
@@ -350,8 +350,8 @@ public void testFilePatternProperty() throws Exception {
350350
public void testMaxFileSizeProperty() throws Exception {
351351
MockEnvironment environment = new MockEnvironment();
352352
environment.setProperty("logging.file.max-size", "100MB");
353-
LoggingInitializationContext loggingInitializationContext =
354-
new LoggingInitializationContext(environment);
353+
LoggingInitializationContext loggingInitializationContext = new LoggingInitializationContext(
354+
environment);
355355
File file = new File(tmpDir(), "logback-test.log");
356356
LogFile logFile = getLogFile(file.getPath(), null);
357357
this.loggingSystem.initialize(loggingInitializationContext, null, logFile);
@@ -365,8 +365,8 @@ public void testMaxFileSizeProperty() throws Exception {
365365
public void testMaxHistoryProperty() throws Exception {
366366
MockEnvironment environment = new MockEnvironment();
367367
environment.setProperty("logging.file.max-history", "30");
368-
LoggingInitializationContext loggingInitializationContext =
369-
new LoggingInitializationContext(environment);
368+
LoggingInitializationContext loggingInitializationContext = new LoggingInitializationContext(
369+
environment);
370370
File file = new File(tmpDir(), "logback-test.log");
371371
LogFile logFile = getLogFile(file.getPath(), null);
372372
this.loggingSystem.initialize(loggingInitializationContext, null, logFile);

0 commit comments

Comments
 (0)