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


Автор: bingo 4.9.2007, 23:42
Подскажите, пожалуйста, что необходимо указать в log4j.properties, чтобы определенный пакет логировался в отдельный файл.
Например, есть конфигурация:
Код

log4j.rootLogger = DEBUG, rollfile
log4j.appender.rollfile = org.apache.log4j.RollingFileAppender
log4j.appender.rollfile.layout = org.apache.log4j.PatternLayout
log4j.appender.rollfile.layout.ConversionPattern = %d [%t] %-5p (%c) - %m%n
log4j.appender.rollfile.File = ${app.root}/logs/main.log

И необходимо теперь все логи из "my.pack.util" писать только в файл util.log.
Как это можно сделать?

Автор: batigoal 5.9.2007, 12:02
Я не особо знаком с log4j, но я бы попробовал так:

Код

log4j.logger.my=DEBUG, MY
log4j.logger.my.util=DEBUG, MY.UTIL

log4j.appender.MY=org.apache.log4j.FileAppender
log4j.appender.MY.File=main.log
log4j.appender.MY.layout=org.apache.log4j.PatternLayout
log4j.appender.MY.layout.ConversionPattern=%d{MM-dd@HH:mm:ss} %-5p (%13F:%L) %3x - %m%n

log4j.appender.MY.UTIL=org.apache.log4j.FileAppender
log4j.appender.MY.UTIL.File=util.log

Автор: bingo 5.9.2007, 21:00
Да, я так тоже пробовал, но увы, пишется только в один файл =(
Может еще есть варианты? =)

ps: как так, я просто не пойму, одновременно в разные файлы (appender'ы) можно писать, а по отдельности нет.. разве никто не сталкивался с такой задачей?..

Автор: batigoal 5.9.2007, 21:43
Видимо, надо как-то поиграться с именами логгеров и аргументом функции getLogger(...). Как он у тебя вызывается?

Автор: bingo 6.9.2007, 00:38
Вызывается посредством org.apache.commons.logging.LogFactory.getLog(java.lang.Class)

Автор: bingo 7.9.2007, 00:59
хм... нужно было дополнительному appender'у указать свойство Threshold =) и тогда во второй файл пишется лог.
..и еще несколько изменений и вроде как получил то, что хотел.

Автор: LSD 15.9.2007, 13:38
При использовании log4j.xml это делается приблизительно так:
Код

<category name="org.jboss" additivity="false">
  <priority value="WARN"/>
  <appender-ref ref="error-console"/>
  <appender-ref ref="jboss-logger"/>
</category>

<category name="com.mycompany" additivity="false">
  <priority value="WARN"/>
  <appender-ref ref="console"/>
  <appender-ref ref="error-console"/>
  <appender-ref ref="file-logger"/>
</category>

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