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后,问题解决。