一尘不染

Spring Boot忽略logback-spring.xml

spring-boot

我有2个使用Logback的Spring Boot(1.4.1-RELEASE)控制台应用程序。这两个配置文件 大致 相同,位于我的 / src
/ main / resources
文件夹中,名为 logback-spring.xml

这两个项目都在其pom.xml中包含了maven依赖spring-boot-starter-logging,并获取了Logback版本1.1.7。

在两个poms中定义的Spring Boot配置:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.1.RELEASE</version>
    <relativePath />
</parent>

<groupId>d.m.v.app-a</groupId>
<artifactId>my-app-a</artifactId>
<version>1.0.16-SNAPSHOT</version>
<packaging>jar</packaging>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-logging</artifactId>
    </dependency>
</dependencies>

但是,在运行应用程序时,其中一个似乎完全忽略了logback配置,而另一个则按预期进行了配置。

如果我将无法正常运行的应用程序的文件名更改为 logback.xml ,则它突然可以正常工作(即使使用我在其中使用的spring配置文件)。

所涉及的任何配置(即pom.xml,application.properties等)都没有明显的区别。

有人知道为什么会这样吗?我发现这种行为令人困惑。


阅读 410

收藏
2020-05-30

共1个答案

一尘不染

我知道它有些旧,但是我遇到了同样的问题并弄清楚了…所以原因很简单,就是您在类路径上有一个logback.xml(在某些情况下,不一定要在您启动的项目中)这是一个依赖项)。

在这里看看:
org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(LoggingInitializationContext, LogFile)

设置一个断点,那么您将看到。

如果spring boot在类路径上找不到任何logback配置(“ logback-test.groovy”,“ logback-test.xml”,“
logback.groovy”,“ logback.xml”),则logback-spring.xml将是已接。

2020-05-30