首页 文章

找不到Log4j2.xml但是log4j2-test.xml是

提问于
浏览
3

我正在从log4j 1.x升级到log4j 2,并将我的log4j.xml配置文件更新为新的log4j2.xml配置 . 我正在跑maven,spring和mule .

运行测试maven构建时,不会拾取log4j2.xml文件 . 但是,如果我重命名文件log4j2-test.xml,它将被拾取(例如,具有自定义PatternLayout的控制台 Logger 在第二种情况下正常工作,但在第一种情况下使用默认配置) .

为什么log4j会选择log4j2-test.xml而不是log4j2.xml?

1 回答

  • 3

    由于 log4j2-test.xmlhigher load precedencelog4j2.xml 好,因此您的类路径上的某个地方可能还有另一个log4j2配置文件,它覆盖了 log4j2.xml . 通过在运行maven测试版本时执行以下代码,尝试查找获取conf文件的位置:

    for (String confFile : Arrays.asList("/log4j2-test.xml", "/log4j2.yaml", "/log4j2.yml", "/log4j2.json", "/log4j2.jsn", "/log4j2.xml")) {
        URL resource = YourTestClass.class.getResource(confFile);
        if (resource != null) {
            System.out.format("found %s in: %s\n", confFile, resource.getFile());
        }
    }
    

相关问题