log4j / log4cxx:logger和appender之间的独占1对1关系

时间:2010-04-14 07:52:50

标签: java c++ log4j log4cxx

使用log4cxx的xml配置(配置与log4j完全相同)。 我希望将某个记录器输出专门用于特定的appender(让它成为输出到该appender的唯一记录器)。

我发现可以将记录器绑定到特定的appender,如下所示:

<logger name="LoggerName">
    <level value="info"/>
   <appender-ref ref="AppenderName"/>
</logger>

但是记录器仍然输出到根appender,因为我在conf文件中有这个标准部分:

<root>
   <priority value="DEBUG"/>
   <appender-ref ref="OtherAppender"/>
</root>

如何从根记录器中排除该记录器? 换句话说,如何配置日志以使所有记录器继承除根特定记录器之外的根记录器的追加器?

1 个答案:

答案 0 :(得分:4)

您可以使用以下配置:

<logger name="TRACER" additivity="false">
    <level value="Debug" />
    <appender-ref ref="DebugAppender" />
</logger>

名称以TRACER开头的所有记录器都将登录到appender DebugAppender。有关详情,请查看herehere

Additivity =“false”表示此记录器的消息不会传播记录器层次结构,因此不会向根记录器打印任何内容。