log4j - 我怎么知道 Log4j 从哪里选择它的配置

标签 log4j

有没有办法弄清楚 Log4J 从哪里挑选配置文件? 我试图更改我的 log4j.xml,但这些更改并未反射(reflect)在 Log4j 行为中。我删除了 log4j.xml,有趣的是,Log4J 仍在使用旧行为。所以它必须选择一些在我的命名空间中可用的配置文件。但问题是我怎样才能弄清楚是哪一个。有没有办法做到这一点? jar 等有很多不同的依赖项,因此其中之一必须包含覆盖我的更改的 log4j.xml 或 log4j.properties。 有什么想法吗?

最佳答案

运行应用程序时,您可以设置系统属性-Dlog4j.debug。在这种情况下,log4j 将生成调试输出并告诉您它如何解析到 log4j.xml 的路径,例如:

log4j: Trying to find [log4j.xml] using context classloader sun.misc.Launcher$AppClassLoader@11b86e7.
log4j: Using URL [file:/C:/develop/workspace/foobar/target/classes/log4j.xml] for automatic log4j configuration.
log4j: Preferred configurator class: org.apache.log4j.xml.DOMConfigurator

here 所述,要显式设置路径,请使用系统属性 -Dlog4j.configuration=file:c:/pathToFile .

关于log4j - 我怎么知道 Log4j 从哪里选择它的配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6070977/

相关文章:

java - log4j日志问题

grails - log4j:参数附加程序文件名

java - log4j 在 Catalina.out 和日志文件之间重复日志

java - 更改可执行 JAR 的日志级别

java - log4j错误日志中面临的问题和异常处理

java - log4j 版本 2 - 无调试输出

java - 如何在代码中使用 log4j?

java - Log4j 不打印完整的堆栈跟踪

java - 如果 log4j jar 在 webApp 的库中,Log4jConfigListener 不工作

java - 如何为不同的 ant 任务提供自定义 log4j.xml?