关于日志记录:可执行jar无法找到logback.xml文件

Executable jar not able to find logback.xml file

我有一个独立的应用程序,该应用程序捆绑在可执行文件jar中。在可执行文件jar的MANIFEST文件中,有一个类路径条目,其中列出了所有相关的jar(包括所有logback实现jar)。此可执行jar还包含logback.xml文件。

使用这种结构,当我使用简单的java -jar MyApplication.jar命令运行应用程序时,应用程序可以正常运行并带有适当的日志记录。但是这里的主要问题是,要更改日志级别,需要打开jar文件,而我不能要求客户端这样做。因此,我将logback.xml放在了jar之外,但现在所有日志记录都在控制台上进行。

我提到Logback即使存在(在类路径上)也找不到logback.xml,并且提到的解决方案是将logback.xml捆绑在一个单独的jar中。但是这种解决方案是不好的。这样,客户端就无法轻松更改日志级别。如何使其与jar之外的logback.xml配合使用。

我尝试在MANIFEST类路径条目中添加logback.xml以及其他相关jar的条目,但是没有用。我的应用程序结构如下所示

+RootFolder
--MyApplication.jar
--logback-classic-1.1.3.jar
--logback-core-1.1.3.jar
--slf4j-api-1.7.7.jar
--Other-Dependency.jar
--logback.xml

有人解决了这个问题吗?我不想在Configurator中使用编程配置。当前的解决方法是使用选项-Dlogback.configurationFile=logback.xml,但是如何使其不起作用?


幸运的是,我发现此链接使某人面临一些其他问题,但对他来说,添加该链接后,它的工作正常。 MANIFEST的Class-Path项中的(点)。我应用了相同的解决方案。因此,我没有把logback.xml文件作为Class-Path的一部分,而是简单地放置了。并且有效。