禁用springframework日志记录

时间:2015-02-19 15:16:26

标签: java spring spring-mvc logging log4j

我想禁用org.springframework。* stuff产生的控制台日志消息。我的log4j.xml看起来像这个

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC
  "-//APACHE//DTD LOG4J 1.2//EN"
  "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
          <param name="ConversionPattern" value="%d %-5p  [%c{1}] %m %n" />
        </layout>
    </appender>

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

    <logger name="com.myapp">
        <level value="all" />
        <appender-ref ref="consoleAppender"/>
    </logger>

</log4j:configuration>

但它不起作用。我仍然在我的控制台上看到很多DEBUG,INFO消息由org.springframework产生。

我应该改变什么来使其有效?

4 个答案:

答案 0 :(得分:1)

Spring将使用调试级别 - 摆脱它将Spring的级别更改为Info:

<logger name="org.springframework">
    <level value="Info" />
    <appender-ref ref="consoleAppender"/>
</logger>

编辑:如果您不想要任何信息日志,请将值更改为

<level value="Warn" />

此外,我看到你指定了level value =“off” - 将此更改为Trace,将其关闭将意味着您不会看到异常

答案 1 :(得分:1)

在依赖项中存在commons-logging之前,不会删除Springframework日志记录。

您必须从Web应用程序的pom.xml文件中的依赖项中禁用commons-logging

即使从pom.xml中删除commons-logging,也请检查Eclipse或STS IDE中可用的依赖关系层次结构。这将有助于了解是否由于我们可能不知道的其他依赖管理而以某种方式添加它。

删除依赖项后,只需将log4j.logger.org.springframework=ERROR添加到log4j配置中。这会有所帮助。

答案 2 :(得分:0)

1将<appender-ref ref="consoleAppender"/>添加到org.springframework记录器

2确保log4j.jar和log4j.xml在类路径

答案 3 :(得分:0)

通过SLF4J依赖项添加JCL以将日志从commons-logging重定向到SLF4J:

    <jcl.over.slf4j.version>1.7.13</jcl.over.slf4j.version>
    ...
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>${jcl.over.slf4j.version}</version>
    </dependency>