Log4J2 – Как отключить ведение журнала в модульном тесте?

Я использую Log4J v2.0 Beta3 в своем приложении для ведения журнала, и я получаю сообщения журнала, генерируемые при запуске моих модульных тестов. Я проверил API, чтобы каким-то образом установить уровень журнала на что-то вроде CRITICAL, но я не смог найти никакого способа изменить конфигурацию регистратора.

На самом деле, я прочитал это на сайте log4j2:

Обратите внимание, что в отличие от Log4j 1.x общедоступный API Log4j 2 не предоставляет методов для добавления, изменения или удаления приложений и фильтров или каким-либо образом манипулирует конфигурацией.

Так с этим сказал. Как правильно отключить ведение журнала из модульных тестов?


person JBug    schedule 04.01.2013    source источник


Ответы (3)



Вы можете отключить ведение журнала, отключив корневой уровень (<Root level="off"/>).

Поэтому поместите файл log4j2.xml в src/test/resources со следующим содержимым:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn">
    <Loggers>
        <Root level="off"/>
    </Loggers>
</Configuration>

РЕДАКТИРОВАТЬ: удалено <!DOCTYPE xml> (по предложению sprynter), чтобы сделать xml действительным.

person Dove    schedule 27.11.2018
comment
Удалите <!DOCTYPE xml> из приведенного выше ответа для действительного файла конфигурации log4j2. - person sprynter; 04.06.2021

Оба ответа от @Jbug и @Dove работает до тех пор, пока вы помещаете файл в src/test/resources текущего модуля. Если ваше приложение зависит от библиотеки, включающей log42.xml, оно не будет работать для тестовых прогонов, поскольку библиотека jar не будет включать тестовые классы и ресурсы.

person Dilip Raj Baral    schedule 10.11.2019