2009-11-10 3 views

ответ

2

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

<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> 
+1

Я думаю, чтобы получить поведение, которое запросил плакат, вы установите com.example.app в WARN и com.example.app.context в положение OFF. Я не думаю, что есть способ включить com.example.app и каждый com.example.app. * Off, за исключением того, что явным образом повторяю каждый подпакет. –

+0

Чтобы отключить вспомогательные пакеты (на более низком уровне, чем у родителя, вам также необходимо установить additive в false). – Yishai

+0

Спасибо за ваш ответ. Тем не менее, я таким образом потеряю журнал <'WARN' из файла' com.example.app.context', который я хочу увидеть. –

2

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

log4j.rootLogger=DEBUG, APPENDER 

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

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

log4j.logger.com.example.app=DEBUG 

удалить протоколирование из его подпакетов, установите их LogLevel ошибки или фатальным:

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

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

+0

Спасибо за ваш ответ. Тем не менее, я таким образом потерял бы журнал <'ERROR' из файла' com.example.app.context', который я хочу увидеть –

+0

Если вы хотите, чтобы 'app.context' наследовал loglevel от' app' просто не помещайте в свой файл свойств строку с новым loglevel для 'app.context'. Не могли бы вы изменить свой вопрос и немного уточнить, что именно вы хотите? – rsp

Смежные вопросы