java - Log4j 2 - 停用流口水记录器

标签 java logging drools jbpm log4j2

我正在使用Log4j 2我尝试更改 jBPM/Drools 的日志记录级别失败,将其作为引用。保持记录的 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 记录器吗?

最佳答案

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

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

If I get it right, ExtensibleXmlParser uses slf4j and Log4j is compatible with sl4j.

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

关于java - Log4j 2 - 停用流口水记录器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29299189/

相关文章:

java - spring-boot 记录新线程的运行时异常

asp.net-mvc-3 - 将 Microsoft.VisualBasic.Logging.FileLogTraceListener 与 ASP.NET MVC 3 结合使用

java - Drools 在 where 子句中获取 List 的第一个元素

java - java-library 插件的 api 配置无法识别

java - 如何快速检查 double 是否适合 float ? ( java )

java - 使用流从 Java 8 中的文件中读取特定列,并将它们放入二维数组中

java - 使用带有数据和 header 的 ApacheHttpClient 进行 REST 调用

java - 在 if isDebugEnabled() : a good policy? 中包含对 debug() 的调用

log4j - Drools 业务规则管理是否受 CVE-2021-44228 影响

java - Drool 引擎文件没有被执行