Log4j2 ведет журнал на уровне TRACE перед тестами, включая анализ конфигурации xml. Как изменить уровень перед началом регистрации?

Я только что настроил проект для тестирования с помощью junit jupiter (junit 5), и я получаю кучу вывода log4j2 на уровне TRACE, независимо от уровня, который я устанавливаю в своей конфигурации xml. Ниже приводится пример вывода. Как я могу изменить уровень, на котором log4j2 регистрируется до того, как XML будет проанализирован?

Вот моя конфигурация xml:

<?xml version = "1.0" encoding = "UTF-8"?>
<Configuration status = "TRACE" packages = "com.travisfw">
  <Appenders>
    <Console name = "console" target = "SYSTEM_OUT">
      <PatternLayout pattern = "%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
    </Console>
  </Appenders>
  <Loggers>
    <Root level = "WARN">
      <AppenderRef ref = "console" />
    </Root>
    <Logger level = "WARN" name = "com.travisfw" additivity = "false">
      <AppenderRef ref = "console" />
    </Logger>
  </Loggers>
</Configuration>

И затем, несмотря на то, что WARN - единственный уровень, который я когда-либо устанавливал, я получаю вывод DEBUG и TRACE в отчете junit, начиная с того, где он находит мою конфигурацию xml:

2018-10-04 16:04:48,532 Test worker DEBUG Apache Log4j Core 2.11.1 initializing configuration XmlConfiguration[location=/home/.../build/resources/main/log4j2.xml]
2018-10-04 16:04:48,539 Test worker DEBUG Installed 1 script engine
2018-10-04 16:04:48,920 Test worker DEBUG Oracle Nashorn version: 1.8.0_181, language: ECMAScript, threading: Not Thread Safe, compile: true, names: [nashorn, Nashorn, js, JS, JavaScript, javascript, ECMAScript, ecmascript], factory class: jdk.nashorn.api.scripting.NashornScriptEngineFactory
2018-10-04 16:04:48,924 Test worker DEBUG Took 0.004073 seconds to load 0 plugins from package com.travisfw
2018-10-04 16:04:48,925 Test worker DEBUG PluginManager 'Core' found 117 plugins
2018-10-04 16:04:48,925 Test worker DEBUG PluginManager 'Level' found 0 plugins
2018-10-04 16:04:48,928 Test worker DEBUG PluginManager 'Lookup' found 13 plugins
2018-10-04 16:04:48,930 Test worker DEBUG Building Plugin[name=layout, class=org.apache.logging.log4j.core.layout.PatternLayout].
2018-10-04 16:04:48,936 Test worker TRACE TypeConverterRegistry initializing.
2018-10-04 16:04:48,937 Test worker DEBUG PluginManager 'TypeConverter' found 26 plugins
2018-10-04 16:04:48,944 Test worker DEBUG PatternLayout$Builder(pattern = "%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n", PatternSelector=null, Configuration(/home/.../build/resources/main/log4j2.xml), Replace=null, charset = "null", alwaysWriteExceptions = "null", disableAnsi = "null", noConsoleNoAnsi = "null", header = "null", footer = "null")
2018-10-04 16:04:48,945 Test worker DEBUG PluginManager 'Converter' found 44 plugins
2018-10-04 16:04:48,946 Test worker DEBUG Building Plugin[name=appender, class=org.apache.logging.log4j.core.appender.ConsoleAppender].
2018-10-04 16:04:48,954 Test worker DEBUG ConsoleAppender$Builder(target = "SYSTEM_OUT", follow = "null", direct = "null", bufferedIo = "null", bufferSize = "null", immediateFlush = "null", ignoreExceptions = "null", PatternLayout(%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n), name = "console", Configuration(/home/.../build/resources/main/log4j2.xml), Filter=null)
2018-10-04 16:04:48,958 Test worker DEBUG Starting OutputStreamManager SYSTEM_OUT.false.false
2018-10-04 16:04:48,959 Test worker DEBUG Building Plugin[name=appenders, class=org.apache.logging.log4j.core.config.AppendersPlugin].
2018-10-04 16:04:48,964 Test worker DEBUG createAppenders( = {console})
2018-10-04 16:04:48,965 Test worker DEBUG Building Plugin[name=AppenderRef, class=org.apache.logging.log4j.core.config.AppenderRef].
2018-10-04 16:04:48,970 Test worker DEBUG createAppenderRef(ref = "console", level = "null", Filter=null)
2018-10-04 16:04:48,970 Test worker DEBUG Building Plugin[name=root, class=org.apache.logging.log4j.core.config.LoggerConfig$RootLogger].

Я пощажу вам полный журнал, но он будет продолжаться еще некоторое время.

Возможный дубликат Где мне настроить log4j в тестовом классе JUnit?. У вас определенно есть некоторые "корневой регистратор" где-то, который читает файл конфигурации некоторые до того, как что-нибудь будет зарегистрирован. Обратитесь к этому сообщению, чтобы найти свой корневой регистратор (или переопределить его программно). Вы также можете установить опцию -Dlog4j.configurationFile=mylog4j2.xml JVM.

paulsm4 05.10.2018 01:43
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
4
1
577
1

Ответы 1

Я думаю, ваша проблема в том, что вы установили уровень регистратор состояния на TRACE: status = "TRACE". Попробуйте изменить это на другой уровень - возможно, ПРЕДУПРЕЖДЕНИЕ.

Другие вопросы по теме