禁用springframework日志记录

3

我希望禁用由org.springframework.*等内容生成的控制台日志记录消息。我的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>

但它并没有起作用,我仍然在控制台上看到许多由org.springframework产生的DEBUG、INFO信息。

我应该改变什么来使它起作用?


4
如果您正在使用Spring 4,它将使用Logback而不是Log4J。请查看我在这里的答案:https://dev59.com/XH_aa4cB1Zd3GeqP4osx#23595045 - Alan Hay
没错,我把logback.xml放到了/src/main/resources/后,一切都正常工作了。 - tmporaries
可能是重复的问题:Spring 4,JPA,关闭控制台调试消息 - OhadR
4个回答

1

只要依赖里还有 commons-logging,Springframework 的日志就不会被移除。

你需要在 web 应用的 pom.xml 文件中禁用 commons-logging

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

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


1

Spring将使用调试级别- 要消除它,请将Spring的级别更改为Info:

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

编辑:如果您不想要任何信息日志,请将值更改为
<level value="Warn" />

此外,我看到您已经指定了级别值为“off” - 将其更改为Trace,关闭它将意味着您无法看到异常。

请仔细查看,我在上述的log4j.xml中已经有了与"org.springframework"记录器相同的行。但它对我不起作用。 - tmporaries
您将级别指定为关闭。 - ashosborne1
1
那又怎样?级别“OFF”也超过了像“INFO”或“WARN”这样的DEBUG消息。我不明白你的意思。 - tmporaries
抱歉,当我粘贴配置时,不知何故我没能将 appender ref 也加入其中!作为最佳实践,我不会关闭所有记录以捕获异常。 - ashosborne1

0

添加 JCL over SLF4J 依赖项以将日志从 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>

0

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

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


尝试过使用appender和不使用appender。log4j.xml位于/src/main/resources/log4j.xml - 标准的maven目录布局。仍然不起作用。 - tmporaries

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接