我的项目配置为能够自动获取logback.xml,如果它与.jar文件位于同一目录中。通常我只使用java -jar app.jar
运行我的项目,logback会自动选择logback.xml并自行配置。
这些是我的MANIFEST.MF文件的内容:
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: Dev
Build-Jdk: 1.7.0_45
Main-Class: com.app.middleware.App
Class-Path: .
但是,一旦我添加了新的Maven依赖项(ActiveMQ客户端5.9.1),Logback似乎无法从类路径中获取配置文件 - 它只是打印以下内容:
20:17:58,872 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.xml]
20:17:58,872 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Setting up default configuration.
我已经将旧jar和新jar并排在一起,两个档案都具有与MANIFEST.MF和.classpath文件完全相同的内容。
这可能是由ActiveMQ引入的某种jar冲突引起的吗?为什么它会阻止回溯获取其配置文件?
我目前通过手动指定配置位置(-Dlogback.configurationFile=logback.xml
)解决了这个问题,但我担心这个问题是由于更深层的基础问题造成的。
答案 0 :(得分:0)
将logback.xml放入应用程序类路径的基础包中。