Log4j记录未定义的记录器

时间:2015-06-25 14:16:23

标签: logging log4j

我有点问题。

我正在使用log4j 1.2.17,并且我想记录来自我没有指定记录器的所有包的所有日志。 例如: 在我的应用程序中,我使用了多个框架:primefaces,solr,atmosphere等。 我已经配置了log4j.xml来记录应用程序日志。它工作得很好,我还将“org.primefaces”包放入记录器中以限制INFO日志。 但是现在,在控制台中,甚至不存在一个appender,因为我不想在没有记录的情况下拥有app输出,所以从大气中出现日志。这不是一个大问题,因为我可以为此添加另一个记录器,但我不想这样做。为什么?因为将来可能会出现另一个框架,我将不得不添加另一个记录器。我的log4j配置文件将是怪异的。

如何创建记录器以记录未定义的记录器未捕获的整个输出?

如果问题没有得到很好的解释,请告诉我,我将添加所需的信息。

非常感谢。

1 个答案:

答案 0 :(得分:0)

您可以定义一个根用于记录整个输出,该输出未被已定义的记录器捕获。

<root>
    <appender-ref ref="rootAppender " />
</root>

如果您不想将日志记录事件传播到根目录,请在这些记录器中将additivity标志添加为false。

<logger name="org.primefaces" additivity="false">
    <appender-ref ref="orgPrimefacesAppender" />
</logger>