spring boot 不加载 logback-spring.xml

新手上路,请多包涵

我有一个使用 Logback 进行日志记录的示例 Spring Boot 应用程序。所以我在 jar 旁边有 logback-spring.xml 来配置日志记录,但是它不起作用,除非我用 logging.config 指定它,例如: logging.config=logback-spring.xml

我研究了 Spring Boot,忽略了 logback-spring.xml ,它表明它可能是因为 spring.xml 某处,但是在 org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(LoggingInitializationContext, LogFile) 上放置断点表明 logFile 是空的。

我在这里做错了什么吗?

原文由 Tamerlane 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
2 个回答

默认情况下,Spring 不会 在 jar 文件之外寻找资源。如果你想使用外部 logback 配置文件,你必须在启动 jar 时传递它的位置:

 $ java -jar -Dlogback.configurationFile=/full_path/logback.xml app.jar

请不要将 logback.xml 包含到最终的 Jar 文件中,这会导致类路径中有多个 logback.xml 文件。

原文由 JohanB 发布,翻译遵循 CC BY-SA 4.0 许可协议

根据问题的描述,您正在使用日志配置的外部化版本。该文件保存在 jar 之外。所以你必须提到路径作为运行时参数,如下所示:

 -Dlogging.config=file:logback-spring.xml

或者在 application.properties 中提及相同的属性,如下所示:

 logging.config=file:logback-spring.xml

它从资源文件夹中获取文件的原因,因为它是在 spring 中以这种方式配置的。 Spring 通过以下名称从类路径中获取 logback 文件。

 logback-spring.xml, logback-spring.groovy, logback.xml, or logback.groovy

请查看 spring-boot自定义日志配置 相关文档

原文由 Sangam Belose 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题