我想从 IntelliJ IDE 自定义一些 junit 日志。
我有一个示例 IntelliJ Maven 项目。我的目标是能够配置日志
src/test/java
。
根据我的理解,log4j 配置的约定是将其放置在:
src/test/resources/log4j.properties
src/test/resources/
识别为 Maven 资源目录。log4j.properties
文件添加到根 test
和 src
目录,但均无济于事。我的单元测试如下所示:
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.Test;
public class LogTest {
private static Logger log = LogManager.getLogger(LogTest.class);
@Test
public void printLogs() {
log.info("Hello world from log.info!");
log.error("Hello world from log.error!");
}
}
我的
src/test/resources/log4j.properties
看起来像这样:
log4j.rootLogger=ALL
...但是输出从未显示
log.info
行。
00:48:19.766 [main] 错误 LogTest - log.error 中的 Hello world! 进程已完成,退出代码为 0
...所以我陷入了配置单元测试日志的第一步。我究竟做错了什么?如果需要,我很乐意分享
pom.xml
和/或 IntelliJ 项目。这是 IntelliJ 提供的默认 Maven 项目,添加了 junit
、log4j-api
和 log4j-core
的依赖项。
有点捂脸,但我回去了 RTFM,这就是问题(我将问题和答案都留在这里,因为在这些小细节上浪费了很多时间):
叫做
log4j2
,强调2
。
src/test/resources/log4j2.properties
^------------ 2
属性上没有
log4j
前缀。
# BEFORE
log4j.rootLogger=...
# AFTER
rootLogger=...