Сокращение вывода журнала с использованием log4j - PullRequest
1 голос
/ 10 ноября 2009

Как я могу добиться следующего с помощью log4j:

  • регистрирует только события, приходящие из определенной категории, то есть com.example.app, но не com.example.app.context или com.example.dao;
  • регистрировать все события с уровнем WARN или выше.

Ответы [ 2 ]

2 голосов
/ 11 ноября 2009

В вашем файле log4j.properties вы можете установить уровень глобального журнала для вашего приложения на rootLogger:

log4j.rootLogger=DEBUG, APPENDER

Вы можете использовать WARN, INFO, ERROR и FATAL вместо DEBUG.

Пакету с подпакетами может быть присвоен собственный уровень журнала, например:

log4j.logger.com.example.app=DEBUG

, чтобы удалить ведение журнала из его подпакетов, установите для уровня логирования значение error или fatal:

#log4j.logger.com.example.app.context=ERROR
log4j.logger.com.example.app.dao=ERROR

Редактировать: закомментировал строку app.context, чтобы она унаследовала уровень DEBUG от своего родительского пакета.

2 голосов
/ 11 ноября 2009

Вам необходимо настроить фильтры категории catergory с пороговым значением appender, установленным на более высокий предел фильтра.

   <appender name="LOG_FILE" class="org.apache.log4j.FileAppender">
      <param name="File" value="log_file.log" />
      <param name="Threshold" value="WARN"/>

      <layout class="org.apache.log4j.PatternLayout">
         <!-- The default pattern: Date Priority [Category] Message\n -->
         <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
      </layout>
   </appender>

   <category name="com.example.app">
         <priority value="DEBUG" />
         <appender-ref ref="LOG_FILE" />
   </category>

   <category name="com.example.app.context">
         <priority value="WARN" />
         <appender-ref ref="LOG_FILE" />
    </category>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...