java - Spring Boot 忽略 logback-spring.xml

标签 java maven spring-boot logback

我有 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 等)都没有明显差异。

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

最佳答案

我知道它有点旧,但我遇到了同样的问题并想通了......所以原因很简单,你的类路径上有一个 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 将被拾取。

关于java - Spring Boot 忽略 logback-spring.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43937031/

相关文章:

eclipse - 了解 Eclipse Maven 依赖层次结构

java - int to String while String concatenation in java

java - 应用程序上下文在 Maven 测试中无效

java - 构建多个maven pom文件并登录到单个文件

java - Cucumber:不允许扩展定义步骤定义或 Hook 的类

java - 如何配置 jetty-maven-plugin 9 使用 https?

java - 你如何测试多个 REST 请求?

java - spring DAO层返回数据到spring Service层

spring-mvc - 没有模板引擎的spring-boot

java - 当 Tomcat 通过 Apache 服务器运行时无法访问 Tomcat 8 管理器