Log4j2 配置 - 如果没有为记录器设置 AppenderRef 会发生什么?

Sum*_*hek 4 java configuration logging log4j2

如果我没有在 log4j2.xml 中为记录器配置显式设置 AppenderRef 会发生什么?默认情况下它会使用所有附加程序吗?

. .

<Logger name="com.package1" level="error"/>

<Root level="error">
  <AppenderRef ref="LOGFILE"/>
  <AppenderRef ref="CONSOLE"/>
</Root>
Run Code Online (Sandbox Code Playgroud)

. .

Rem*_*pma 8

一个记录器调用它有一个 AppenderRef 的所有附加器,然后它委托给它的父级(在你的例子中是根记录器)。

您可以通过配置additivity="false". 在这种情况下,记录器上配置的级别可能会阻止记录事件。这通常用于从某些包中过滤掉非常详细的日志记录。


rgo*_*ers 5

除了 Remko 的回答之外,如果可加性设置为 false 的 Logger 或根 Looger 没有 appender 引用,则该事件将被忽略。