Image

Image_winnie wrote in Imageru_java

log4j конфиг: уровень важности для аппендеров.

Мне хочется лог с информационными сообщениями (INFO и важней) перенаправлять в файл, а все-все сообщения ERROR и важней - перенаправлять в System.error.

Первая часть понятна, пишем
log4j.rootLogger=INFO, file
log4j.appender.file=org.apache.log4j.FileAppender
.... настройки log4j.appender.file ...

Вторая часть - не очень.
Если добавить log4j.rootLogger=ERROR, stderr и настроить аппендер для log4j.append.stderr то это перезапишет настройку "log4j.rootLogger=INFO, file"

Пробежал глазами http://logging.apache.org/log4j/1.2/manual.html , но сходу не понял как это сделать. Уровень логирования настраивается не для аппендеров, а для логгеров, поэтому непонятно как сделать рутовому логеру аппендеры с разными уровнями ошибок.

Сейчас вот эксперементирую с такими настройками, svnhook2.log создаётся, а svnhook.log не создаётся. Хотя я хочу что бы INFO+ шло в svnhook.log, а ERROR - в svnhook2.log.


log4j.rootLogger=INFO, file

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.file=svnhook.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.conversionPattern=%d{ABSOLUTE} %5p %t %c{1}:%M:%L - %m%n

log4j.rootLogger=ERROR, file2

log4j.appender.file2=org.apache.log4j.FileAppender
log4j.appender.file2.file=svnhook2.log
log4j.appender.file2.layout=org.apache.log4j.PatternLayout
log4j.appender.file2.layout.conversionPattern=%d{ABSOLUTE} %5p %t %c{1}:%M:%L - %m%n