一 优先级
1.1 规则
1.如果一个 <logger> 没有显式配置 appender,Log4j2 会将该日志事件传递给其 父 Logger 的 appender。
2.这种传递行为会一直向上追溯,直到找到配置了 appender 的 Logger,或者到达 Root Logger。
3.如果日志事件最终传递到 Root Logger,并且 Root Logger 配置了 appender,则日志会输出到 Root Logger 的 appender。
4.如果 Root Logger 也没有配置 appender,则日志事件会被丢弃(即不会有任何输出)
1.2 案例说明
com.example Logger 没有指定 appender,因此它的日志事件会传递给 Root Logger。
Root Logger 配置了 ConsoleAppender,因此日志会输出到控制台。

1.3 结论
-
如果
<logger>没有指定appender,日志事件会传递给其父 Logger。 -
如果父 Logger 也没有
appender,日志事件会继续向上传递,直到 Root Logger。 -
如果 Root Logger 也没有
appender,则日志事件会被丢弃。 -
通过
additivity属性可以控制是否将日志事件传递给父 Logger。
1.4 场景描述

如图:
Logger 未指定 appender,且 additivity="false"日志事件被丢弃,不会有任何输出。

1.5 additivity作用
1.additivity 属性控制日志事件是否传递给父 Logger
additivity="true"(默认值):日志事件会传递给父 Logger。
additivity="false":日志事件不会传递给父 Logger
如果 additivity="false",且当前 Logger 没有配置 appender,则日志事件会被丢弃。
2648

被折叠的 条评论
为什么被折叠?



