Log4J2 - 如何在单元测试中禁用日志记录?

2022-09-01 20:55:33

我在应用程序中使用Log4J v2.0 Beta3进行日志记录,并且在运行单元测试时收到生成的日志消息。我检查了API,以找到将日志级别设置为“关键”之类的方法,但我找不到任何更改记录器配置的方法。

事实上,我在log4j2网站上读到了这个:

请注意,与 Log4j 1.x 不同,公共 Log4j 2 API 不会公开添加、修改或删除追加器和过滤器的方法,也不会以任何方式操作配置。

所以说了这么多。从单元测试中禁用日志记录的正确方法是什么?


答案 1

我在log4j2网站上的“在Maven中测试”下找到了我的答案。推荐的方法似乎是将 log4j2-test.xml 文件放在 src/test/resources 中。将 xml 文件放入此目录将导致使用它而不是 log4j2.xml。


答案 2

您可以通过将根级别设置为 off () 来禁用日志记录。<Root level="off"/>

因此,将log4j2.xml文件放入src/test/resources中,其中包含以下内容:

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

编辑:已删除(基于sprynter的建议)以使xml有效。<!DOCTYPE xml>


推荐