首页 > 解决方案 > 如何在记录器 xml 标记内的 appender refs 中禁用 log4j2.xml 可加性

问题描述

在发布这个问题之前我已经完成了我的研究,我的问题与我没有正确使用 additivity 属性有关,下面是我的 log4j2.xml 的一个片段,我想要实现的是记录器中定义的每个 appender ref应该只附加它定义的级别的日志,但所有附加程序都会获取附加的所有日志消息,而不管日志级别如何,因此例如调试记录器仍然收到我不想要的错误消息。任何投入将不胜感激。

<Logger name="com.mycompnay" level="INFO" additivity="false">

    <AppenderRef ref="CoreInfo" level="INFO"/>
    <AppenderRef ref="CoreDebug" level="DEBUG"/>
    <AppenderRef ref="CoreWarning" level="WARNING"/>
    <AppenderRef ref="CoreError" level="ERROR"/>

</Logger>

标签: logginglog4j2

解决方案


我找到了解决方案,而不是在 appender ref 上设置日志级别,在 appender 声明中你可以做这样的事情来确保它只记录调试消息,你可以将其更改为你想要的任何日志级别。花了一段时间才找到这个!

<LevelRangeFilter minLevel="DEBUG" maxLevel="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>


推荐阅读