【问题标题】:Log4j 2 - Deactivate drools loggerLog4j 2 - 停用流口水记录器
【发布时间】:2015-05-31 16:37:52
【问题描述】:

我正在使用Log4j 2,但尝试更改jBPM/Drools 的日志记录级别未成功,并将其作为参考。保持记录的流口水类是ExtensibleXmlParser

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </Console>
    </Appenders>
    <Loggers>
        <Root level="debug">
            <AppenderRef ref="Console" />
        </Root>
        <Logger name="org.drools.core.xml.ExtensibleXmlParser" level="off">
            <AppenderRef ref="Console" />
        </Logger>
    </Loggers>
</Configuration>

如果我猜对了,ExtensibleXmlParser 使用 slf4j,而 Log4j 与 sl4j 兼容。

为什么这个 Log4j 配置不起作用?有人可以为我提供一个工作配置吗?我应该单独配置 jBPM/Drools 记录器吗?

【问题讨论】:

  • 检查你的类路径:logback-* 不应该在那里,从 sfl4j 到 log4j 2 的桥应该在那里。或者只是从 log4j 2 切换到 Logback(这可能更好)。

标签: java logging drools jbpm log4j2


【解决方案1】:

当 log4j 似乎忽略了您对 log4j.properties/xml 文件的调整时,这通常意味着您没有摆弄正确的文件。您的类路径中很可能还有另一个配置文件,该文件较早地被找到并被考虑在内。

在整个类路径中搜索log4j* 模式并查看结果(包括 .jar 文件和应用服务器 /lib 和 /ext 文件夹的内容,如果有的话)。

如果我没看错的话,ExtensibleXmlParser 使用 slf4j 并且 Log4j 与 sl4j 兼容。

“兼容”不等同于“配置为使用”。 SLF4J 通过org.slf4j.impl.StaticLoggerBinder 类插入适当的日志框架。搜索类路径(最好在您的 IDE 中)以查看该类附带的库。如果没有这样的类,那么 SL​​F4J 什么也不记录。

【讨论】:

  • 你知道如何搜索我的类路径吗?我正在使用 Eclipse
  • Ctrl+Shift+T 查找类,Ctrl+Shift+R 查找其他文件(“资源”)。请注意,它只是最终运行时类路径的近似值。
  • 谢谢。正如 Geoffrey De Smet 所建议的那样,我应该更加小心。我参考了 log4j2 库,但这还不够。一旦我添加了对 log4j-slf4j 实现桥的引用,正如here 明确指出的那样,一切都开始正常工作。
猜你喜欢
  • 2015-12-22
  • 1970-01-01
  • 1970-01-01
  • 2012-10-08
  • 1970-01-01
  • 1970-01-01
  • 2020-02-21
  • 2011-09-18
  • 1970-01-01
相关资源
最近更新 更多