В моем приложении мне нужно загрузить 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 логирования?