java - 如果通过 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
,但我希望将所有内容都封装起来。
任何想法如何使这项工作?
解决方案
推荐阅读
- javascript - Vue.js SPA 项目结构——在哪里使用 Vuex 存储和调用 API
- botframework - 使用“通用表达式语言”,我如何计算/查询集合中的元素
- python - 收到一个名为 :: 数组索引过多的错误
- postgresql - org.apache.kafka.connect.errors.ConnectException:更改事件生产者发生异常。此连接器将被停止
- powershell - 试图在powershell中显示一个gif
- listview - TabbedPage 中的 Xamarin Forms ListView 不使用 ObservableCollection 更新
- swiftui - SwiftUI:为每个视图使用不同的环境对象
- doxygen - 使用 doxygen 生成文档时如何获取可引用的 URL
- python-3.x - Python回调函数中的非局部变量没有绑定
- c++ - 在 C++ 中使用 rand() 或 std::random_device 生成安全随机数