外部 log4j.xml 文件

2022-09-01 02:17:30

我正在尝试在jar外部的文件系统上运行一个带有log4j.xml文件的jar,如下所示:

java -jar MyJarName.jar -cp=/opt/companyName/pathToJar/ log4j.configuration=log4j.xml argToJar1 argToJar2

我也试过:

java -jar MyJarName.jar -cp=/opt/companyName/pathToJar/ log4j.configuration=/opt/companyName/pathToJar/log4j.xml argToJar1 argToJar2

log4j.xml is 文件与 jar (/opt/companyName/pathToJar/ ) 位于同一目录中,但我仍然收到标准的警告消息:

log4j:WARN No appenders could be found for logger (org.apache.axis.i18n.ProjectResourceBundle).
log4j:WARN Please initialize the log4j system properly.

是否可以将配置文件放在jar之外,或者我必须将其与jar一起打包?

断续器


答案 1

使用开关启动可执行 jar 文件时,将从 jar 文件的清单中获取类路径。开关(如果给定)将被忽略。-jar-cp

杰夫·斯托里(Jeff Storey)的答案将是最简单的解决方案。或者,您可以向 jar 文件的清单添加一个属性。Class-Path

编辑尝试启用 log4j 调试,并创建指向完全限定 URL 的路径。例如:log4j.xml

java -Dlog4j.debug -Dlog4j.configuration=file:/path/to/log4j.xml -jar ...

答案 2

这有效:

java -jar -Dlog4j.configuration="file:d:\log4j.xml" myjar.jar

推荐