我正在使用Spring(Core / Security / ldap等)和logback。 但由于某种原因,spring没有收到logback XML中设置的loggin阈值 我可以看到,当我调试spring源代码时,我看到了
final boolean debug = logger.isDebugEnabled();
是假的
我想提一下(我不知道它是否有任何相关性)春天使用的记录器是:
org.apache.commons.logging.LogFactory
org.apache.commons.logging.Log
而不是SLF4j,就像我使用
一样那么我应该如何启用调试级别并将日志带入我的SLF4J配置..
由于
答案 0 :(得分: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>
然后您的logback.xml
或其他配置可以设置日志级别。例如,
<logger name="org.springframework" level="info" additivity="false">
<appender-ref ref="STDOUT" />
</logger>
答案 1 :(得分:4)
将以下依赖项添加到pom.xml文件中:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.6.6</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.0.7</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.0.7</version>
</dependency>
并在logback.xml文件中添加以下行:
<logger name="org.springframework.web.client.RestTemplate"
level="DEBUG" />
<logger name="org.springframework.web.servlet" level="OFF" />
<logger name="org.springframework.beans" level="OFF" />
<logger name="org.springframework.core" level="OFF" />
<logger name="org.springframework.context" level="OFF" />
<logger name="org.springframework.ui" level="OFF" />
<logger name="org.springframework.web.context" level="OFF" />
<logger name="org.springframework.aop" level="OFF" />
<logger name="org.springframework.cache" level="OFF" />
<logger name="org.springframework.jndi" level="OFF" />
您可以根据您的要求设置级别,或者如果您想关闭弹簧的所有日志级别,则只需添加一行:
<logger name="org.springframework" level="OFF" />
答案 2 :(得分:1)
将commons-logging.jar
替换为jcl-over-slf4j.jar
。 spring documentation详细解释了这一点。