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) {
|
private boolean ignoreLogConfig(String logConfig) {
|
||||||
return !StringUtils.hasLength(logConfig)
|
return !StringUtils.hasLength(logConfig) || logConfig.startsWith("-D");
|
||||||
|| isDefaultAzureLoggingConfig(logConfig);
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean isDefaultAzureLoggingConfig(String candidate) {
|
|
||||||
return candidate.startsWith("-Djava.util.logging.config.file=");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initializeFinalLoggingLevels(ConfigurableEnvironment environment,
|
private void initializeFinalLoggingLevels(ConfigurableEnvironment environment,
|
||||||
|
|
|
||||||
|
|
@ -162,6 +162,18 @@ public class LoggingApplicationListenerTests {
|
||||||
assertThat(new File(tmpDir() + "/spring.log").exists()).isFalse();
|
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
|
@Test
|
||||||
public void overrideConfigBroken() throws Exception {
|
public void overrideConfigBroken() throws Exception {
|
||||||
TestPropertySourceUtils.addInlinedPropertiesToEnvironment(this.context,
|
TestPropertySourceUtils.addInlinedPropertiesToEnvironment(this.context,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue