log4j - фильтрация по классу вместо уровня - PullRequest
0 голосов
/ 07 марта 2011

В моем приложении мне нужно загрузить 3 разных артефакта с удаленного FTP-сервера. После загрузки каждого артефакта я проверяю артефакты. И, если есть какие-либо ошибки проверки, мне нужно зарегистрировать их также

ошибки проверки с Артефактом A => A.log

ошибки проверки с Артефактом B => B.log

ошибки проверки с Артефактом C => C.log

Мой log4j.properties выглядит так:

log4j.rootLogger=DEBUG, rollingfile
log4j.logger.artifactALogger=INFO, AppenderA
log4j.logger.artifactBLogger=INFO, AppenderB
log4j.logger.artifactCLogger=INFO, AppenderC

log4j.appender.AppenderA.File=A.log
log4j.appender.AppenderA.MaxFileSize=5000KB
log4j.appender.AppenderA.MaxBackupIndex=1
log4j.appender.AppenderA.layout=org.apache.log4j.PatternLayout
log4j.appender.AppenderA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

log4j.appender.AppenderB.File=B.log
log4j.appender.AppenderB.MaxFileSize=5000KB
log4j.appender.AppenderB.MaxBackupIndex=1
log4j.appender.AppenderB.layout=org.apache.log4j.PatternLayout
log4j.appender.AppenderB.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

log4j.appender.AppenderC.File=C.log
log4j.appender.AppenderC.MaxFileSize=5000KB
log4j.appender.AppenderC.MaxBackupIndex=1
log4j.appender.AppenderC.layout=org.apache.log4j.PatternLayout
log4j.appender.AppenderC.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

Как вы видите, у меня есть 1 appender на регистратор, и конфигурация для каждого appender точно такая же (кроме имени файла журнала) ... много дублирования! В конце концов, если у меня будет больше артефактов для загрузки, мне нужно будет объявить другого регистратора и другого аппендера для каждого артефакта. Что-то мне не кажется правильным, если я так поступаю. Может быть, я просто не использую log4j так, как он был разработан для использования? В настоящее время я фильтрую вывод журнала по классу, а не по уровню журнала. Должен ли я использовать другой, более подходящий API логирования?

1 Ответ

0 голосов
/ 07 марта 2011

Для этой цели мы можем создать собственный logger для log4j. Когда-то у нас было похожее требование, и мы создали собственный регистратор.

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