在 IntelliJ 的单元测试中自定义 log4j

问题描述 投票:0回答:1

我想从 IntelliJ IDE 自定义一些 junit 日志。

我有一个示例 IntelliJ Maven 项目。我的目标是能够配置日志

src/test/java

根据我的理解,log4j 配置的约定是将其放置在:

  • src/test/resources/log4j.properties
  • IntelliJ 自动将
    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
的依赖项。

java maven intellij-idea log4j
1个回答
0
投票

有点捂脸,但我回去了 RTFM,这就是问题(我将问题和答案都留在这里,因为在这些小细节上浪费了很多时间):

  1. 叫做

    log4j2
    ,强调
    2

    src/test/resources/log4j2.properties
                            ^------------ 2
    
  2. 属性上没有

    log4j
    前缀。

    # BEFORE
    log4j.rootLogger=...
    
    # AFTER
    rootLogger=...
    
© www.soinside.com 2019 - 2024. All rights reserved.