Java 如何从slf4j关闭日志记录
它是一个第三方应用程序,在我们的appserver上生成大量日志条目。像这样:Java 如何从slf4j关闭日志记录,java,logging,jakarta-ee,slf4j,Java,Logging,Jakarta Ee,Slf4j,它是一个第三方应用程序,在我们的appserver上生成大量日志条目。像这样: [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.JCLLoggerAda
[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的一些配置,但没有找到。他们的网站也没有帮助slf4j是各种日志框架的日志外观。该输出来自ApacheCommons Loggin框架适配器,它变成了另一个门面 您使用的是哪个日志后端,例如logback、log4j、j.u.l?您需要配置后端以过滤这些消息 此外,日志消息指向“
org.slf4j.impl.jcloggerAdapter
”这一事实表明调用方位置推断无法正常工作。(它应该提到实际的调用方,而不是jcloggerAdapter
)。如果:
slf4j只是到实际日志后端的一个漏斗(这里覆盖jakarta commons logging),您必须对其进行配置以消除某种消息。对于logback,这是适当的配置片段:
<!-- No Tomcat debug logs -->
<configuration>
...
<logger name="org.apache.catalina.core" level="OFF" />
...
</configuration>
...
...
对于log4j,它非常相似。或者,下载,在那里查找slf4j-nop-1.6.4.jar(这是无操作记录器),并将其包含在类路径中。当SLF4J类加载器看到这一点时(它会查看类路径中可以使用的记录器),它应该停止日志记录(一旦重新启动应用程序)
至少通过这种方式,您不需要弄乱日志配置文件…使用您的IDE搜索以下字符串:
level=“DEBUG”
。
您将在.xml文件中找到该文本
去那里用level=“INFO”
代替level=“DEBUG”
键值不区分大小写
可能有以下情况:
<root level="info">
...
</root>
...
这是第三方应用程序。我没有访问任何代码(反编译除外)没有log4j.properties文件或任何其他看起来不包含任何日志属性的文件在我的系统上,我还必须从我的类路径中删除slf4j-log4j*.jar。如果类路径中有多个slf4j后端,slf4j将非常不喜欢。我使用的是maven,我添加了Zorn先生建议的依赖项,我更改了其他slf4j依赖项,使它们都具有相同的版本,正如Thorbjørn Ravn Andersen建议的那样,但我仍然看到外部库中的日志。