【发布时间】:2016-11-16 01:19:34
【问题描述】:
我有捆绑在可执行文件jar 中的独立应用程序。在可执行文件jar 的清单文件中,有一个类路径条目,其中列出了所有依赖的jar(包括所有 logback 实现 jars)。此可执行 jar 还包含 logback.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 的条目,但没有奏效。我的应用结构如下所示
+根文件夹
--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 但是如何使它工作呢?
【问题讨论】: