Log4J конкретные уровни для конкретных файлов - appenders - PullRequest
3 голосов
/ 03 января 2012

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

Моя цель - записывать в файл только сообщения INFO и только сообщения об ошибках в другом файле.

Проблема использования пороговых значений для этого состоит в том, что, если я устанавливаю порог appender для INFO, а другой для ERROR, когда я регистрирую сообщение ERROR, это сообщение отправляется в оба файла (appenders).

Как мне этого добиться?

Заранее спасибо

Ответы [ 3 ]

6 голосов
/ 03 января 2012

Мы используем регистратор разностей для разных уровней, используя:

log4j.appender.XXXTracking.filter.LevelToMatch = INFO

с опцией filter.LevelToMatch Вы можете написать уровень, который вы хотите.Это в log4j.properties

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

Вы захотите использовать org.apache.log4j.varia.LevelMatchFilter

<filter class="org.apache.log4j.varia.LevelMatchFilter">
            <param name="LevelToMatch" value="ERROR" />
            <param name="AcceptOnMatch" value="true" />
        </filter>
0 голосов
/ 03 января 2012

Спасибо за ответ, ребята,

Что я делал неправильно, так это то, что пытался определить фильтр в файле свойств. Поскольку его использование поддерживается только в файле конфигурации XML, я перешел на файл XML.

Чтобы получить именно то, что мне было нужно, мне также пришлось добавить фильтр типа DenyAllFilter:

        <filter class="org.apache.log4j.varia.LevelMatchFilter"> 
            <param name="LevelToMatch" value="INFO" /> 
            <param name="AcceptOnMatch" value="true" />                        
        </filter>
        <filter class="org.apache.log4j.varia.DenyAllFilter" />

Спасибо за помощь, ребята

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