Я только что настроил проект для тестирования с помощью 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].
Я пощажу вам полный журнал, но он будет продолжаться еще некоторое время.




Я думаю, ваша проблема в том, что вы установили уровень регистратор состояния на TRACE: status = "TRACE". Попробуйте изменить это на другой уровень - возможно, ПРЕДУПРЕЖДЕНИЕ.
Возможный дубликат Где мне настроить log4j в тестовом классе JUnit?. У вас определенно есть некоторые "корневой регистратор" где-то, который читает файл конфигурации некоторые до того, как что-нибудь будет зарегистрирован. Обратитесь к этому сообщению, чтобы найти свой корневой регистратор (или переопределить его программно). Вы также можете установить опцию
-Dlog4j.configurationFile=mylog4j2.xmlJVM.