Конфигурация Log4j - PullRequest
       2

Конфигурация Log4j

0 голосов
/ 03 февраля 2012

У меня есть два приложения, файл и консоль, в моем проекте. Я хотел бы настроить свое приложение так:

все регистраторы с именем "my.app. *":

1. log events DEBUG and higher to fileA
2. log events DEBUG and higher to fileB

все остальные регистраторы:

1. log events WARN and higher to fileA
2. log events DEBUG and higher to fileB

В идеале конфигурация должна выглядеть примерно так: </p> <pre><code><log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="fileA" class="org.apache.log4j.FileAppender"> <!-- configuration --> </appender> <appender name="fileB" class="org.apache.log4j.FileAppender"> <!-- configuration --> </appender> <logger name="my.app" additivity="false"> <level="DEBUG"/> <appender-ref ref="fileA"/> </logger> <logger name="" additivity="true"> <level="DEBUG"/> <appender-ref ref="fileB"/> </logger> <root> <level="WARN"/> <appender-ref ref="fileA"/> </root> </log4j>

Однако эта настройка заставляет регистраторы с именем «my.app» регистрироваться только на консоли, а все другие регистраторы - на консоли в режиме WARN и выше. По сути, <logger name=""> игнорируется. Есть ли другой способ эмулировать это поведение с помощью log4j?

PS. Я извиняюсь за плохое форматирование, действительно изо всех сил пытаюсь заставить это работать сегодня вечером: /

1 Ответ

2 голосов
/ 03 февраля 2012

Вам необходимо:

<logger name="my.app" additivity="false">
    <level="DEBUG"/>
    <appender-ref ref="console"/>
    <appender-ref ref="file"/>
</logger>

<root>
    <appender-ref ref="console-warn"/>
    <appender-ref ref="file-debug"/>
</root>

Для корневого приложения вам нужны два новых консольных / файловых приложения, которые имеют требуемые ограничения уровня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...