log4j:使用了哪个配置文件?

Man*_*nic 20 java log4j

使用log4j,我如何找出使用当前DOMConfigurator文件log4j.xml的名称和路径,使用PropertyConfigurator.configureAndWatch方法重置文件名,该方法需要此文件的名称和路径以查看是否存在已经改变.

API文档向我展示了如何配置log4j以重新加载配置,但我找不到一种方法来查看自动获取的文件名和路径.应用程序独立运行任何应用程序服务器.

谢谢.

FrV*_*aBe 25

我担心您没有机会从API中获取自动拾取的路径.据我了解log4j的源代码,只会使用检测到的路径而不会存储.

至少你可以使用该-Dlog4j.debug属性在启动时输出log4j内部调试信息,你会得到一些这样的信息:

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
Run Code Online (Sandbox Code Playgroud)

'log4j: Using URL ...'行来自LogManager类.您可以从此处检查初始化过程.我看到的URL不会存储以供日后使用.