【问题标题】:Executable jar not able to find logback.xml file可执行 jar 找不到 logback.xml 文件
【发布时间】: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 但是如何使它工作呢?

【问题讨论】:

    标签: logging logback


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-05-06
      • 2021-02-08
      • 2015-08-18
      • 2020-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-12
      • 2019-11-02
      相关资源
      最近更新 更多