mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-08-29 03:06:45 +08:00
Detect logback config location as xml if path ends with .xml
See gh-37039
This commit is contained in:
parent
5b68e5b9fc
commit
c9cc1da48e
@ -273,7 +273,7 @@ public class LogbackLoggingSystem extends AbstractLoggingSystem implements BeanF
|
||||
|
||||
private void configureByResourceUrl(LoggingInitializationContext initializationContext, LoggerContext loggerContext,
|
||||
URL url) throws JoranException {
|
||||
if (url.toString().endsWith(".xml")) {
|
||||
if (url.getPath().endsWith(".xml")) {
|
||||
JoranConfigurator configurator = new SpringBootJoranConfigurator(initializationContext);
|
||||
configurator.setContext(loggerContext);
|
||||
configurator.doConfigure(url);
|
||||
|
@ -687,6 +687,25 @@ class LogbackLoggingSystemTests extends AbstractLoggingSystemTests {
|
||||
.hasAtLeastOneElementOfType(DynamicClassLoadingException.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenConfigLocationIsNotXmlThenIllegalArgumentExceptionShouldBeThrown() {
|
||||
this.loggingSystem.beforeInitialize();
|
||||
assertThatIllegalStateException()
|
||||
.isThrownBy(() -> initialize(this.initializationContext, "file:///logback-nonexistent.txt",
|
||||
getLogFile(tmpDir() + "/tmp.log", null)))
|
||||
.satisfies((ex) -> assertThat(ex.getCause()).isInstanceOf(IllegalArgumentException.class)
|
||||
.hasMessageStartingWith("Unsupported file extension"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenConfigLocationIsXmlAndHasQueryParametersThenIllegalArgumentExceptionShouldNotBeThrown() {
|
||||
this.loggingSystem.beforeInitialize();
|
||||
assertThatIllegalStateException()
|
||||
.isThrownBy(() -> initialize(this.initializationContext, "file:///logback-nonexistent.xml?raw=true",
|
||||
getLogFile(tmpDir() + "/tmp.log", null)))
|
||||
.satisfies((ex) -> assertThat(ex.getCause()).isNotInstanceOf(IllegalArgumentException.class));
|
||||
}
|
||||
|
||||
private void initialize(LoggingInitializationContext context, String configLocation, LogFile logFile) {
|
||||
this.loggingSystem.getSystemProperties((ConfigurableEnvironment) context.getEnvironment()).apply(logFile);
|
||||
this.loggingSystem.initialize(context, configLocation, logFile);
|
||||
|
Loading…
Reference in New Issue
Block a user