我有独立的应用程序,它捆绑在可执行文件jar
中。在可执行文件jar
的MANIFEST文件中,有一个类路径条目,其中列出了所有依赖的jar
(包括所有的logback实现jar)。此可执行jar还包含lognack.xml
文件。
使用这种结构,当我使用简单的java -jar MyApplication.jar
命令运行我的应用程序时,应用程序运行正常并具有正确的日志记录。但这里的主要问题是,要更改日志级别,需要打开jar文件,我不能要求客户端这样做。所以我将logback.xml
置于jar之外,但现在所有日志记录都在控制台上进行。
我提到Logback can't find logback.xml even though it exists (on the classpath),提到的解决方案是将logback.xml捆绑在一个单独的jar中。但这个解决方案很糟糕。这样客户端就可以轻松更改日志级别。如何使用jar之外的logback.xml。
我尝试在MANIFEST Class-Path条目中添加logback.xml
以及其他相关jar的条目,但是没有用。我的申请结构如下
+ RootFolder
--MyApplication.jar
--logback经典-1.1.3.jar
--logback核-1.1.3.jar
--slf4j-API-1.7.7.jar
- 其他 - Dependency.jar
- logback.xml
任何人都已经解决了这个问题?我不想在Configurator中使用编程配置。目前的解决方法是使用选项-Dlogback.configurationFile=logback.xml
但是如何使其无法使用?
答案 0 :(得分:3)
幸运的是,我发现这个link有人面临着一些不同的问题,但对他来说,添加后它的工作正常。 (点)在MANIFEST的Class-Path条目中。我应用了相同的解决方因此,我没有将logback.xml文件作为Class-Path的一部分而是简单地放入。它起作用了。