避免 Log4j2 写入父记录器

Avoid Log4j2 write in parent loggers

在我的项目中,我有一些包,例如:

com.project.my

我为每种包定义了几个记录器,比如:

<Logger name="com.project.my" additivity="true" level="warn">
   <AppenderRef ref="RollingFile" />
</Logger>

<Logger name="com.project" additivity="true" level="warn">
   <AppenderRef ref="RollingFile" />
</Logger>

还有更多...

问题是当我使用 com.project.my 记录器写日志时,输出被写入 com.project.my 滚动文件日志 ANDcom.project 文件日志。

我只想将输出写入 com.project.my 文件日志。我该如何解决?

为记录器 com.project.my 设置 additivity="false"。关于可加性的详细信息也可以参考log4j2 manual. You may also find to be helpeful. There is also some information about it on the architecture page of the manual