log4j / log4cxx: исключительное отношение 1 к 1 между регистратором и аппендером - PullRequest
0 голосов
/ 14 апреля 2010

Использование XML-конфигурации log4cxx (которая идентична конфигурации с log4j).Я хочу, чтобы определенный журнал регистрировался исключительно для определенного приложения (пусть он является единственным регистратором, который выводит это приложение).

Я обнаружил, что можно привязать регистратор к определенному приложению, например так:

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

но это, что регистратор все еще выводит корневому приложению, потому что у меня есть этот стандартный кусок в файле conf:

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

Как я могу исключить этот регистратор из корневого регистратора?другими словами, как мне настроить журнал таким образом, чтобы все регистраторы наследовали дополнения корневого регистратора, кроме определенного регистратора?

1 Ответ

4 голосов
/ 14 апреля 2010

Для этого вы используете следующий фрагмент конфигурации:

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

Все регистраторы с именем, начинающимся с TRACER, войдут в приложение appender DebugAppender. Для получения дополнительной информации, проверьте здесь или здесь .

Additivity = "false" означает, что сообщения для этого регистратора не будут распространяться вверх по иерархии регистраторов, поэтому он ничего не будет печатать для корневого регистратора.

...