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

标签 java log4j log4j2

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

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

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

最佳答案

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

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

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

关于java - 从与 jar 文件相同的目录加载 log4j2.xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23017161/

相关文章:

java - Log4j .append=true 属性失败

java - 使用可选参数记录

java - log4j2 StringMapMessage无法获取自定义消息

java - 何时需要在 web.xml 中包含 Jersey ServletContainer 以启用 JAX-RS?

java - java中的Integer.MAX_VALUE

java - 我们可以禁用 AOP 调用吗?

java - 当我在 Linux 中启动 Spring Boot 应用程序作为系统服务时,日志文件没有生成?

java - 发出 http ://apache. org/xml/features/xinclude testing log4j 2

Java FTPCLient : upload file, 连接丢失后重新连接?

java - 无法将 Spring Boot war 部署到 Elastic Beanstalk