Spring log阈值不是由logback设置的

Gle*_*eeb 4 java logging spring logback slf4j

我正在使用Spring(Core/Security/ldap等)和logback.但由于某些原因,spring没有收到logback XML中设置的loggin阈值,我可以看到,当我调试spring源代码时,我看到了

final boolean debug = logger.isDebugEnabled();
Run Code Online (Sandbox Code Playgroud)

是假的

我想提一下(我不知道它是否有任何相关性)春天使用的记录器是:

org.apache.commons.logging.LogFactory
org.apache.commons.logging.Log
Run Code Online (Sandbox Code Playgroud)

而不是像我使用的SLF4j

那么我应该如何启用调试级别并将日志带入我的SLF4J配置..

谢谢

Sot*_*lis 8

Spring默认使用Apache的Jakarta Commons Logging库.您需要禁用它,而是使用slf4j桥.你应该有以下(其中包括)

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>${spring.version}</version>
    <exclusions>
        <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<!-- Logging -->
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <version>${logback.version}</version>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>${logback.version}</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jcl-over-slf4j</artifactId>
    <version>${slf4j.version}</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>${slf4j.version}</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

然后您logback.xml或其他配置可以设置日志级别.例如,

<logger name="org.springframework" level="info" additivity="false">
    <appender-ref ref="STDOUT" />
</logger>
Run Code Online (Sandbox Code Playgroud)