Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > LOG4J: Разделить класс от пакета


Автор: YuG 22.4.2011, 11:31
Всем привет!

Есть ли способ разделить логирование отдельного класса от остальных классов пакета?

Например, есть пакет com.test, в котором есть com.test.MyTest и много других.

Если создать:
Код

log4j.logger.com.test=DEBUG, TEST
log4j.appender.TEST=org.apache.log4j.DailyRollingFileAppender
log4j.appender.TEST.File=test.log

log4j.logger.com.test.MyTest=DEBUG, MY_TEST
log4j.appender.MY_TEST=org.apache.log4j.DailyRollingFileAppender
log4j.appender.MY_TEST.File=mytest.log

В этом случае, все классы пишут в общий лог, а com.test.MyTest пишет в оба лога.

Как сделать так, чтоб com.test.MyTest писал только в собственный лог?

Автор: LSD 22.4.2011, 11:51
Не знаю как пропертями, но в XML это будет выглядеть так:
Код

<appender name="my_test_appender" class="org.apache.log4j.RollingFileAppender">
  <param name="Append" value="true"/>
  <param name="File" value="mytest.log"/>
  <param name="MaxFileSize" value="25000KB"/>
  <param name="MaxBackupIndex" value="5"/>
  <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d [%-5p] [%c{1}] [%X{ServiceName} #%X{RequestID}] %m%n"/>
  </layout>
</appender>

<category name="com.test.MyTest" additivity="false">
  <priority value="DEBUG"/>
  <appender-ref ref="my_test_appender"/>
</category>

Автор: YuG 22.4.2011, 12:23
LSD, спасибо тебе огромное!

Код

log4j.additivity.com.test.MyTest=false

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)