java Log4J 2-如何在单元测试中禁用登录?

nr7wwzry  于 2023-01-24  发布在  Java
关注(0)|答案(3)|浏览(85)

我在应用程序中使用Log4J v2.0 Beta3进行日志记录,运行单元测试时会生成日志消息。我检查了API,以寻找将日志级别设置为CRITICAL之类的方法,但找不到任何更改日志记录器配置的方法。
事实上,我在log4j2网站上读到了这篇文章:
请注意,与Log4j 1.x不同,公共Log4j 2 API不提供添加、修改或删除附加器和过滤器的方法,也不提供以任何方式操作配置的方法。
那么,在单元测试中禁用日志记录的正确方法是什么呢?

wgx48brx

wgx48brx1#

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

dfuffjeb

dfuffjeb2#

您可以通过将根级别设置为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>

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

zyfwsgd6

zyfwsgd63#

只要您将文件放置在当前模块的src/test/resources中,@Jbug和@Dove的答案都有效。如果您的应用依赖于包含log4j2.xml的库,则无法用于测试运行,因为库jar不包含测试类和资源。

相关问题