log4j - Программная конфигурация - PullRequest
0 голосов
/ 25 марта 2020

Я использую log4j (1.2.15) для входа в свое приложение, где у меня есть два файловых приложения для двух разных пакетов (darius.log4j. sql и darius.log4j. net) и консольное приложение. Его конфигурация такова:

# CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
# FILE A
log4j.appender.A=org.apache.log4j.FileAppender
log4j.appender.A.File=A.log
log4j.appender.A.layout=org.apache.log4j.PatternLayout
log4j.appender.A.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
# FILE B
log4j.appender.B=org.apache.log4j.FileAppender
log4j.appender.B.File=B.log
log4j.appender.B.layout=org.apache.log4j.PatternLayout
log4j.appender.B.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
#
log4j.rootLogger=ERROR, CONSOLE
#
log4j.logger.darius.sql=DEBUG, A
log4j.logger.darius.net=INFO, B

Теперь мне нужно программно добавить новый файловый аппендер, если появляется указанная комбинация данных c. Я знаю, как определить этот новый файловый appender (например, C), но Я не знаю, как установить уровень и новый appender для третьего пакета :

log4j.logger.darius.ws=INFO, C

где C является третьим файловым приложением.

Любое попадание?

1 Ответ

1 голос
/ 25 марта 2020

Simple! После того, как вы создадите своего третьего приложения (C), получите регистратор для своего пространства имен (darius.ws), установите уровень INFO для этого регистратора. В конце просто добавьте этот C appender к регистратору.

FileAppender fileAppender = new FileAppender();
fileAppender.setName("C");
fileAppender.setFile("C.log");
fileAppender.setLayout(new PatternLayout("%d %-5p [%c{1}] %m%n"));
fileAppender.setThreshold(Level.INFO);
fileAppender.setAppend(true);
...
Logger someLogger = Logger.getLogger("darius.ws");
someLogger.setLevel(Level.INFO);
someLogger.addAppender(fileAppender);

С уважением

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