可执行jar无法找到logback.xml文件

时间:2016-07-13 12:35:28

标签: logging logback

我有独立的应用程序,它捆绑在可执行文件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但是如何使其无法使用?

1 个答案:

答案 0 :(得分:3)

幸运的是,我发现这个link有人面临着一些不同的问题,但对他来说,添加后它的工作正常。 (点)在MANIFEST的Class-Path条目中。我应用了相同的解决方因此,我没有将logback.xml文件作为Class-Path的一部分而是简单地放入。它起作用了。