【问题标题】:Disable springframework logging禁用springframework日志记录
【发布时间】:2015-04-21 00:11:06
【问题描述】:

我想禁用由 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 消息。

我应该改变什么才能让它工作?

【问题讨论】:

标签: java spring spring-mvc logging log4j


【解决方案1】:

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

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

编辑:如果您不希望任何信息日志将值更改为

<level value="Warn" />

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

【讨论】:

  • 请仔细看,我在上面提到的log4j.xml中已经有“org.springframework”记录器的相同行了。它对我不起作用。
  • 您已将级别指定为关闭
  • 那又怎样? Level OFF 也超过了 DEBUG 消息,如 INFO 或 WARN。不明白你的意思。
  • 抱歉,当我粘贴配置时,我不知何故设法不放入 appender ref!作为最佳实践,我不会为了捕获异常而关闭所有注销
【解决方案2】:

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

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

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

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

【讨论】:

    【解决方案3】:

    1 将&lt;appender-ref ref="consoleAppender"/&gt; 添加到 org.springframework 记录器

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

    【讨论】:

    • 尝试使用和不使用附加程序。 log4j.xml 放在 /src/main/resources/log4j.xml - 标准 maven 目录布局。还是不行。
    【解决方案4】:

    添加 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-17
      • 2011-06-22
      • 2015-02-01
      • 2012-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多