2016-07-13 87 views
1

我有獨立的應用程序捆綁在可執行文件jar。在可執行文件jar的MANIFEST文件中,列出了所有依賴的jar(其中包括所有的logback實現jar)的class-path條目。這個可執行jar還包含lognack.xml文件。可執行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的條目,但沒有奏效。我的應用程序的結構就像下面

+ 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但是如何使它與工作無關?

回答

2

幸運的是,我發現這個link有人遇到了一些不同的問題,但對他來說,它添加時工作正常。 (點)在MANIFEST的Class-Path條目中。我應用了同樣的解決因此,不要將logback.xml文件作爲Class-Path的一部分,而是簡單地放置。它的工作。