0

log4cxx の xml 構成を使用します (構成は log4j と同じです)。特定のロガーを特定のアペンダーにのみ出力したい(そのアペンダーに出力する唯一のロガーを持たせる)。

次のようにロガーを特定のアペンダーにバインドできることがわかりました。

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

しかし、confファイルに次の標準部分があるため、ロガーは引き続きルートアペンダーに出力します。

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

そのロガーをルートロガーから除外するにはどうすればよいですか? つまり、特定のロガーを除くすべてのロガーがルート ロガーのアペンダーを継承するようにログを構成するにはどうすればよいでしょうか。

4

1 に答える 1

4

これには、次の構成を使用します。

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

名前が で始まるすべてのロガーはTRACER、appender にログを記録しますDebugAppender。詳細については、こちらまたはこちらをご覧ください。

Additivity="false" は、このロガーへのメッセージがロガー階層を上に伝搬しないことを意味するため、ルート ロガーには何も出力されません。

于 2010-04-14T08:14:12.290 に答える