【问题标题】:Disable logging from log4j 2 library, how?从 log4j 2 库中禁用日志记录,如何?
【发布时间】:2017-07-09 08:18:20
【问题描述】:

我正在使用 log4j 2 进行日志记录,并希望关闭来自库本身的日志消息,例如:

2017-02-20 07:36:38,160 main DEBUG Took 0.001600 seconds to load 0 plugins from package org.apache.logging.log4j.test

我在log4j2.XML 文件中收到以下信息,但我仍然收到与上述类似的DEBUG 消息:

<Logger name="org.apache.logging" level="error" additivity="false">
    <AppenderRef ref="STDOUT" />
</Logger>

此问题与Disabling Log4J Output in Java 不重复 因为我不想关闭所有输出,只关闭 log4j 2 库本身的输出。所以我还是想让我的代码生成日志输出。

【问题讨论】:

标签: java logging configuration log4j log4j2


【解决方案1】:

将日志记录根级别设置为&lt;Root level="off"&gt;

【讨论】:

  • 这将关闭所有日志记录,这不是我想要的。
【解决方案2】:

您可以使用配置文件顶部的status 属性控制内部日志记录 Log4j2 打印到控制台。

我建议您关闭详细的 debug 级别的日志记录,但保留 warnerror 级别的日志记录,以便在出现问题时得到通知。

为此,请将配置文件的开头更改为:

<Configuration status="WARN">
  ...

【讨论】:

【解决方案3】:

如果您像我尝试的那样从 log4j 1.x 迁移,请小心。 我已经正确配置了 log4j2,但不知何故,我的项目中仍然有 log4j 作为继承的依赖项(和继承的配置)。 这样做的副作用是两个 log4j 都能记录,这很烦人,而且几乎无法调试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多