Java可执行jar logback-spring.xml没有看到logback.properties文件

时间:2017-12-21 15:27:14

标签: java maven logging logback executable-jar

问题是logback.xml文件没有看到logback.properties文件。

我正在尝试运行一个使用Maven构建的可执行jar(我们称之为foo.jar)。尝试运行foo.jar时失败,因为它无法找到logback.properties文件。此文件确实存在于foo.jar中,并且是logback.xml文件的兄弟文件。

我尝试在foo.jar中手动移动logback.properties文件无效。但是,我发现如果我将jar的logback.properties文件的副本放在jar的目录中,那么它就会看到属性文件并启动。

有人可以解释如何让foo.jar查看属性文件吗?

示例:假设我的logback.xmllogback.properties文件位于foo.jar中,位于&{39; foo/bar'。

如何让它找到属性文件?

旁注:这是一个Spring Boot项目,老实说我对Spring一无所知,所以我不知道这是否是导致悲痛的障碍。

我的logback.xml文件通过

引用logback.properties文件
<property file="logback.properties" />

1 个答案:

答案 0 :(得分:1)

来自Logback docs(与Spring无关)

  

您也可以在类路径而不是文件上引用资源。

<configuration>
  <property resource="resource1.properties" />
  ... snip ...
</configuration>

这将尝试在类路径的根目录中找到属性文件(即,如果您正在使用Maven,则在src / main / resources中)。 <property file="..."/>语法是相对于应用程序的当前工作文件夹查找文件系统中的文件,因此如果放在JAR旁边,它就会正确定位文件,就像您描述的那样。