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

时间:2013-01-04 16:18:33

标签: java unit-testing logging log4j2

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

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

  

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

就这样说。在单元测试中禁用日志记录的正确方法是什么?

3 个答案:

答案 0 :(得分:21)

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

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:0)

只要将文件放在当前模块的src/test/resources中,@Jbug@Dove的答案都可以使用。如果您的应用程序依赖于包含log42.xml的库,那么它就无法运行测试,因为库jar不会包含测试类和资源。

相关问题