Broaden LoggingApplicationListener ignores
Update `LoggingApplicationListener` to ignore all `-D` prefixed property values. As well as catching the Azure use-case, this update now means Spring Boot application can start when Tomcat is missing `CATALINA_BASE\conf\logging.properties` and sets the value `-Dnop`. Closes gh-7639
This commit is contained in:
parent
f36ed673fd
commit
2ea4d4b1d9
|
@ -314,12 +314,7 @@ public class LoggingApplicationListener implements GenericApplicationListener {
|
|||
}
|
||||
|
||||
private boolean ignoreLogConfig(String logConfig) {
|
||||
return !StringUtils.hasLength(logConfig)
|
||||
|| isDefaultAzureLoggingConfig(logConfig);
|
||||
}
|
||||
|
||||
private boolean isDefaultAzureLoggingConfig(String candidate) {
|
||||
return candidate.startsWith("-Djava.util.logging.config.file=");
|
||||
return !StringUtils.hasLength(logConfig) || logConfig.startsWith("-D");
|
||||
}
|
||||
|
||||
private void initializeFinalLoggingLevels(ConfigurableEnvironment environment,
|
||||
|
|
|
@ -162,6 +162,18 @@ public class LoggingApplicationListenerTests {
|
|||
assertThat(new File(tmpDir() + "/spring.log").exists()).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void tomcatNopLoggingConfigDoesNotCauseAFailure() throws Exception {
|
||||
TestPropertySourceUtils.addInlinedPropertiesToEnvironment(this.context,
|
||||
"logging.config: -Dnop");
|
||||
this.initializer.initialize(this.context.getEnvironment(),
|
||||
this.context.getClassLoader());
|
||||
this.logger.info("Hello world");
|
||||
String output = this.outputCapture.toString().trim();
|
||||
assertThat(output).contains("Hello world").doesNotContain("???");
|
||||
assertThat(new File(tmpDir() + "/spring.log").exists()).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void overrideConfigBroken() throws Exception {
|
||||
TestPropertySourceUtils.addInlinedPropertiesToEnvironment(this.context,
|
||||
|
|
Loading…
Reference in New Issue