【问题标题】:Log4j2 configuration - What happens if AppenderRef not set for logger?Log4j2 配置 - 如果没有为记录器设置 AppenderRef 会发生什么?
【发布时间】:2016-10-31 09:57:18
【问题描述】:
如果我没有为 log4j2.xml 中的记录器配置显式设置 AppenderRef 会发生什么?它会默认使用所有的附加程序吗?
。
.
<Logger name="com.package1" level="error"/>
<Root level="error">
<AppenderRef ref="LOGFILE"/>
<AppenderRef ref="CONSOLE"/>
</Root>
.
.
【问题讨论】:
标签:
java
logging
configuration
log4j2
【解决方案1】:
一个记录器调用它有一个 AppenderRef 的所有附加器,然后它委托给它的父级(在你的例子中是根记录器)。
您可以通过配置additivity="false" 来阻止它调用其父级。在这种情况下,记录器上配置的级别可能会阻止记录事件。这通常用于从某些包中过滤掉非常冗长的日志记录。
【解决方案2】:
除了 Remko 的回答之外,如果加性设置为 false 的 Logger 或根 Looger 没有 appender 引用,则该事件将被忽略。