Я пытаюсь добавить с помощью кода пользовательского приложения, которое должно регистрировать некоторый пакет. И все работает по этому коду:
String loggerName = "org.test";
final LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
Configuration cfg = ctx.getConfiguration();
if (cfg instanceof XmlConfiguration) {
//add appender if not added
Appender appender = cfg.getAppender(MyAppender.NAME);
if (appender == null) {
Appender appender = MyAppender.createAppender(MyAppender.NAME, "%highlight{%d [%t] %-5level: %msg%n%throwable}", "false", null);
appender.start();
cfg.addAppender(appender);
}
LoggerConfig logger = ((XmlConfiguration) cfg).getLogger(loggerName);
if (logger == null) {
logger = new LoggerConfig(loggerName, Level.DEBUG, true);
cfg.addLogger(loggerName, logger);
}
logger.addAppender(appender, Level.DEBUG, null);
} //closing the instanceof XMLConfiguration part
Короче говоря ... как вы можете видеть, я создаю приложение, если оно не было определено ранее. Затем я создаю регистратор для org.test, если он не был добавлен, и добавляю приложение в этот регистратор.
Все в порядке, кроме одного: новый аппендер и регистратор работают правильно. Однако у меня есть другие приложения в моем приложении консоли конфигурации XML и так далее ... и по какой-то причине они ТАКЖЕ добавлены как уровень DEBUG для регистратора org.test ... даже если у этого регистратора нет НИКАКИХ других приложений, настроенных, как в моем случае .. Я отлаживаю .. у него ТОЛЬКО одно приложение в объекте конфигурации .. но регистратор по-прежнему отправляет сообщения отладки для ВСЕХ добавлений, которые у меня есть ... (я думаю, все, что у меня есть на уровне ROOT, которые были установлены на INFO ) ... с этого момента также отображаются сообщения DEBUG от org.test ... как я могу удалить это дополнение и использовать только это .. :(
Спасибо.