gpt4 book ai didi

java - 从 list 类路径加载 logback.xml

转载 作者:行者123 更新时间:2023-12-01 10:16:52 24 4
gpt4 key购买 nike

我正在尝试从可执行 myapp.jar 文件外部加载 logback.xml 文件。

myapp.jar 有一个 META-INF/MANIFEST.MF 文件,大致如下:

Manifest-Version: 1.0
Class-Path: logger-config lib/lib/jcl-over-slf4j-1.7.18.jar lib/slf4j-api-1.7.18.jar
Main-Class: com.mycompany.MyAppMain

并且驻留在

my-app/
lib/
jcl-over-slf4j-1.7.18.jar
slf4j-api-1.7.18.jar
logger-config/
logback.xml
myapp.jar

(还有很多其他 jar 依赖项,请将其删除)。

现在,如果我使用 java -jar myapp.jar 运行应用程序,它会正常启动,但它不会获取 logback.xml 文件

来自他们的文档:

If no such file is found, it checks for the file logback.xml in the classpath..

( http://logback.qos.ch/manual/configuration.html )

我知道我可以使用 logback.configurationFile 覆盖它,但是有没有办法将 XML 文件放入类路径,以便 logback 自动加载它?似乎只有当我将 logback.xml 打包到 myapp.jar (将其放置在 src/main/resources 目录中)时,它才起作用,但是然后配置文件将传播到使用 myapp.jar 作为依赖项的其他 JAR。

最佳答案

也许您只是将其删除,但您的类路径未指定 logback-classic 依赖项。您必须确保在类路径定义中 logback 出现在 slf4j 之前。另外,请注意 logger-config 路径的尾部斜杠 - 如果没有它,logback 将找不到您的 logback.xml(有关详细信息,请参阅 here)。

这样的事情应该有效:

Class-Path: lib/logback-classic-1.1.6.jar lib/logback-core-1.1.6.jar lib/jcl-over-slf4j-1.7.18.jar lib/slf4j-api-1.7.18.jar logger-config/

关于java - 从 list 类路径加载 logback.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35843032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com