首页 > 解决方案 > 如果通过 JarLauncher 启动 Spring-boot 会忽略 log4j2.xml

问题描述

我已经用 spring-boot-maven-plugin 打包了我的 Spring-boot 应用程序。我使用一个库,它在类路径中搜索一些文件。因此我需要在类路径上添加额外的资源目录。我正在使用以下命令来运行应用程序:

java -cp "C:\temp\some-dir;C:\temp\another-dir;my-application-1.0.jar" org.springframework.boot.loader.JarLauncher

应用程序启动并成功运行,但未使用 log4j2 配置。当我检查存档时,log4j2.xml 被复制到 BOOT-INF/classes 中,这是类加载器中的最后一个条目。我想,这就是 log4j2 配置不正确的原因。

但是当我通过 运行应用程序时java -jar,省略了额外的类路径,log4j2 配置成功设置。

到目前为止,我唯一的解决方法是将外部日志配置指定为-Dlogging.config=classpath:log4j2.xml,但我希望将所有内容都封装起来。

任何想法如何使这项工作?

标签: javaspring-bootlog4j2spring-boot-maven-plugin

解决方案


推荐阅读