我在我的应用程序中使用 Log4J v2.0 Beta3 进行日志记录,并且在运行单元测试时生成了日志消息。我检查了 API 以了解将日志级别设置为 CRITICAL 之类的某种方式,但我找不到任何方法来更改记录器配置。
事实上,我在 log4j2 网站上读到了这个:
请注意,与 Log4j 1.x 不同,公共 Log4j 2 API 不公开添加、修改或删除附加程序和过滤器或以任何方式操作配置的方法。
所以就这么说了。从单元测试中禁用日志记录的正确方法是什么?
我在我的应用程序中使用 Log4J v2.0 Beta3 进行日志记录,并且在运行单元测试时生成了日志消息。我检查了 API 以了解将日志级别设置为 CRITICAL 之类的某种方式,但我找不到任何方法来更改记录器配置。
事实上,我在 log4j2 网站上读到了这个:
请注意,与 Log4j 1.x 不同,公共 Log4j 2 API 不公开添加、修改或删除附加程序和过滤器或以任何方式操作配置的方法。
所以就这么说了。从单元测试中禁用日志记录的正确方法是什么?
我在 log4j2 网站的“ Testing in Maven ”下找到了我的答案。推荐的方法似乎是在 src/test/resources 中放置一个 log4j2-test.xml 文件。将 xml 文件放入此目录将导致使用它而不是 log4j2.xml。
您可以通过将根级别设置为关闭 ( <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 有效。