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

时间:2015-08-04 02:22:49

标签: java spring maven log4j log4j2

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

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

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

1 个答案:

答案 0 :(得分:3)

由于log4j2-test.xml的{​​{3}}不是log4j2.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());
    }
}