java - logback 配置不适用于 spring

标签 java spring slf4j logback appender

我有以下 logback.xml 文件

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
    </encoder>
</appender>

<logger name="my.package">
    <level value="TRACE"/>
</logger>

<logger name="org.springframework.web">
    <level value="DEBUG"/>
</logger>

<root>
    <priority value="debug"/>
    <appender-ref ref="STDOUT"/>
</root>

当我运行应用程序时,在控制台中我看到这样调用的消息:

LOGGER.error("error ");

来自 my.package
中的类 我没有看到来自 spring 的消息。

我做错了什么?

最佳答案

默认情况下,Spring 会将日志记录到 Apache Commons Logging。要将其切换为 logback,请排除 Commons Logging

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.1.3.RELEASE</version>
        <exclusions>
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

并将桥接添加到 Logback

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>1.7.12</version>
    </dependency>

关于java - logback 配置不适用于 spring,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30214964/

相关文章:

java - Spring引用JDBC缺陷?

java - Spring 形式上的路径选择不起作用

java - 是否可以将 Spring Boot 应用程序嵌套在另一个 Spring Boot 应用程序中?

java - 创建类路径资源 3 中定义的名称为 'springSecurityFilterChain' 的 bean 时出错

maven - 通过将其添加为测试范围来排除 Maven 依赖项?

java - Hibernate 问题中不推荐使用注释

java - 如何运行 webspec 和 watij

java - StackTraceElement 数组的哈希码每次返回不同的值

java - Element::textContent 和 NodeList::item::getNodeValue 之间的区别

java - gradle junit 测试使用 slf4j 进行日志记录