Журнал ошибок отображается в консоли для log4j2 после использования LoggerContext - PullRequest
0 голосов
/ 19 июня 2020

Я использую LoggerContext для установки пути log4j2, xml в коде и получения журнала ошибок файла конфигурации log4j2 не обнаружен.

Код

    LoggerContext context = (org.apache.logging.log4j.core.LoggerContext)LogManager.getContext(false);
    String  fileName = "\\resources\\log4j2.xml";
    context.setConfigLocation(new File(fileName).toURI());
    LOG.debug("This Will Be Printed On Debug");
    LOG.info("This Will Be Printed On Info");
    LOG.warn("This Will Be Printed On Warn");

Вывод

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only 
errors to the console. Set system property 'org.apache.logging.log4j.simplelog.StatusLogger.level' to 
TRACE to show Log4j2 internal initialization logging.
DEBUG | 2020-06-19 14:16:21 | [main] | (Log4j2Example.java:22) - This Will Be Printed On Debug
INFO  | 2020-06-19 14:16:21 | [main] | (Log4j2Example.java:23) - This Will Be Printed On Info
WARN  | 2020-06-19 14:16:21 | [main] | (Log4j2Example.java:24) - This Will Be Printed On Warn

Здесь я получаю ожидаемый результат, но также получаю журнал ошибок при запуске. Если я установил log4j2, xml в пути к классам в eclipse, тогда никаких ошибок не будет.

Как мы можем удалить журнал ошибок при использовании LoggerContext?

1 Ответ

0 голосов
/ 19 июня 2020

Когда вы вызываете LogManager.getContext (false), Log4j инициализируется. Это вызывает сообщение Не найден файл конфигурации log4j2, потому что вы его еще не настроили.

Попробуйте использовать Configurator.initialize("My Config", "\\resources\\log4j2.xml");

...