Вопрос о Log4jAppender - PullRequest
       7

Вопрос о Log4jAppender

2 голосов
/ 11 декабря 2010

Я начал изучать что-то о log4j, так как пока он работает нормально, это код из файла log4j.property

    # Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=DEBUG, A1,xml



# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
# ${applicationRoot}/logs/xml.log
log4j.appender.xml=org.apache.log4j.RollingFileAppender
log4j.appender.xml.File=G:/TESTGEN/logs/xmlimpex.log
log4j.appender.xml.MaxFileSize=2MB
log4j.appender.xml.MaxBackupIndex=2
log4j.appender.xml.layout = org.apache.log4j.PatternLayout
log4j.appender.xml.layout.ConversionPattern=%p %t %c - %m%n

и его отлично работает печать на консоли, а также запись в файл. Мне интересно, можно ли сделать что-то, как следует

Я хочу, чтобы у меня была возможность регистрировать на консоли все, что делает этот файл log4j. но в то же время я хочу, чтобы в файле журнала, который я настроил с помощью RollingFileAppender, должны регистрироваться записи только для предупреждений и ошибок.

Пожалуйста, предложите мне, как я могу это сделать

Заранее спасибо Umesh

Ответы [ 2 ]

1 голос
/ 11 декабря 2010
log4j.rootLogger=DEBUG,A1
log4j.newlogger=WARN, XML

Log4j работает следующим образом: вы можете создать несколько регистраторов, которые уместятся в иерархии, где Root logger всегда находится наверху.Регистраторы могут наследовать уровни и дополнения (если флаг аддитивности включен) от родительских регистраторов.

В приведенном мной примере новый созданный вами регистратор запускается на уровне WARN.Он имеет в качестве appenders XML, но также и A1 (который он унаследовал от Root logger).

Обратите внимание, что если бы мы не установили уровень newLogger, он бы унаследовал уровень DEBUG.

Hiearchies в log4j работают так же, как в пакетах java (с использованием точек), и полагаются на регистраторимена.Logger X является родителем logger XY, который является родителем logger XYZ Logger X всегда является дочерним для Root logger.

Подробнее об этом можно прочитать во введении Log4j

0 голосов
/ 11 декабря 2010

В документации Log4net где-то говорится, что вы можете установить, какие уровни будут обрабатываться из приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...