springboot+logback是非常成熟的套装了,通常为了在多环境启动,我们会有多个配置文件通过不同的启动参数满足不同环境的运行需求。如图所示。

当我们创建3个不同环境的logback文件(logback-dev.xml/logback-test.xml/logback-prod.xml)时,通过启动日志可以发现,加载的文件永远是logback-test.xml。

查看logback源码可以发现,在启动时ContextInitializer按以下顺序尝试获取classpath下的配置文件。

logback.groovy ->
logback-test.xml ->
logback.xml
所以如果我们将配置文件命名为logback-test.xml,加载的永远是logback-test.xml,将文件名改为logback_test.xml后,问题解决。
本文探讨了SpringBoot结合Logback在多环境部署下配置文件加载的优先级问题,揭示了logback-test.xml始终被加载的原因,并提供了解决方案。
398

被折叠的 条评论
为什么被折叠?



