如何关闭slf4j的日志记录

时间:2010-03-03 14:31:24

标签: java logging java-ee slf4j

这是第三方应用程序在我们的应用程序服务器上生成大量的logentries。像这样:

[03.03.10 15:21:57:250 CET] 00000180 FtpProtocolHa I org.slf4j.impl.JCLLoggerAdapter info Close connection : 10.227.10.10 - admin
[03.03.10 15:27:35:209 CET] 00000181 MinaFtpProtoc I org.slf4j.impl.JCLLoggerAdapter info [/10.227.10.10] CLOSED
++++

如何关闭slf4j的输出?我查看了.war文件,找到slf4j的一些配置,但没有。他们的网站也没有帮助

5 个答案:

答案 0 :(得分:14)

或者,下载http://www.slf4j.org/dist/slf4j-1.6.4.tar.gz,查看slf4j-nop-1.6.4.jar(这是无操作记录器)并将其包含在类路径中。当SLF4J类加载器看到这个(它看起来它可以使用的类路径中有什么记录器)时,应该停止记录(一旦你重新启动应用程序)。

至少这种方式你不需要搞乱日志配置文件...

答案 1 :(得分:12)

slf4j只是实际日志后端的漏斗(此处覆盖jakarta commons日志记录),这是您必须配置以消除某种消息的漏洞。对于logback,这是相应的配置代码段:

    <!--  No Tomcat debug logs -->
    <configuration>
    ...
        <logger name="org.apache.catalina.core" level="OFF" />
    ...
    </configuration>

对于log4j,它非常相似。

答案 2 :(得分:2)

哪种日志记录后端,例如logback,log4j,j.u.l。,你在用?您需要配置后端以过滤这些消息。

此外,日志消息指向“org.slf4j.impl.JCLLoggerAdapter”的事实表明呼叫者位置推断正常工作。 (应该提到实际的来电者不是JCLLoggerAdapter)。如果出现这种情况:

  1. 您使用的是旧版SLF4J
    1. 调用者正在使用类似slf4j的包装器,或者有自己的本地日志记录API,它不能正确地推断出调用者位置。另请参阅相关的SLF4J FAQ entry

答案 3 :(得分:1)

slf4j是各种日志框架的日志记录。该输出来自Apache Commons Loggin框架适配器,它变成了另一个外观。 Commons Logging Configuration

答案 4 :(得分:0)

使用 IDE 搜索以下字符串:level="DEBUG"。 您将在 .xml 文件中找到该文本。

去那里使用level="INFO"代替level="DEBUG"

键值不区分大小写。

可能有类似的内容:

<root level="info">
    ...
</root>