Как поставить рабочие 2 отдельных файла xml log4j2 - PullRequest
0 голосов
/ 05 февраля 2019

Мне нужно настроить два различных xml-файла log4j2, которые регистрируют 2 разных файла журнала (в разных каталогах) в нашем веб-приложении.

В этом веб-приложении используется конфигурация log4j, которая не может быть изменена каким-либо образом:

System.setProperty("log.dir", dirLogs);
System.setProperty("log4j.configurationFile", "file://" + servletPath + "WEB-INF/log4j.xml");
this.accessLog = LogManager.getLogger("LOGGER_ACCESS"); 

Пользователи могут загружать файлы jar в это веб-приложение, и эти файлы также могут содержать журналы.Это пример того, как пользователь пытается использовать log4j2:

System.setProperty("log4j.configurationFile", PATH_TO_USER_LOG4J_XML);
confirmLog = LogManager.getLogger("LOGGER_CONFIRM");

Но это не работает.Ведение журнала веб-приложения работает, но не ведение журнала пользователя.Распечатывая информацию из регистратора, мы видим:

confirmLog = LOGGER_CONFIRM:OFF in AsyncContext@4c23524b
confirmLogClass = org.apache.logging.log4j.core.async.AsyncLogger

ВЫКЛ.На самом деле, файл журнала не создается, если мы перезапускаем веб-приложение.

Как мы можем заставить эти два журнала работать одновременно с независимыми конфигурациями?

...