从与jar文件相同的目录中加载log4j2.xml文件

时间:2014-04-11 15:50:08

标签: java log4j log4j2

我有一个目录/ release /包含我的application.jar以及log4j2.xml文件。当我使用java -jar application.jar运行应用程序时,它将不会获取log4j2.xml配置文件。如果我明确指定xml文件的位置

,它就可以工作

java -Dlog4j.configurationFile=log4j2.xml -jar application.jar

有没有办法可以指示我的程序总是从jar所在的同一目录中获取配置文件?我想让程序尽可能简单,并且在运行应用程序时不要求用户设置一个笨拙的系统属性。

1 个答案:

答案 0 :(得分:1)

如果没有系统属性,log4j-2.0将在类路径中查找log4j2.xml文件。所以我正在阅读你的问题:如何使用java -jar application.jar启动我的应用程序并在类路径中包含log4j2.xml文件?

这取决于您的application.jar文件的清单(http://docs.oracle.com/javase/8/docs/technotes/tools/windows/findingclasses.html#sthref8)中是否有Class-Path条目。

当然,您只需将log4j2.xml文件包含在application.jar文件中即可。 如果要避免这种情况,可以将包含log4j2.xml文件的目录添加到JAR文件清单中的Class-Path条目。 (这可能是“。”当前目录。)