Log4j2.xml 未找到,但 log4j2-test.xml 是
Log4j2.xml not found but log4j2-test.xml is
我正在从 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?
由于 log4j2-test.xml
比 log4j2.xml
有 higher load precedence,您可能在类路径中的某处有另一个 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());
}
}
我正在从 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?
由于 log4j2-test.xml
比 log4j2.xml
有 higher load precedence,您可能在类路径中的某处有另一个 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());
}
}