sprinbboot 2.7启动不生成日志文件
新增了一个springboot项目,通过idea 调试,并且在idea 的vm options中指定-Dlogging.config=classpath:logback-pro.xml 或者 -Dlogging.config=classpath:logback-dev.xml 都能正常生成对应的日志文件。
部署到测试环境以及生产环境,日志文件却没有生成,甚是诡异。
测试环境的部署脚本主要为(其他忽略):
java -jar test.jar -Dlogging.config=classpath:logback-pro.xml
排查了各种原因,各种修改路径,总是在idea 正常,通过上面的命令,就不能生成文件。而且这个配置及整体项目架构,除了springboot 版本升级2.7.x外,和之前的项目架构几乎无差别。
百思不得解时,验证了下不指定,直接在properties文件中配置:
logging.config=classpath:logback-pro.xml
然后项目打成jar包,执行命令 java -jar test.jar ,惊喜出现,竟然文件生成了。
继而注释掉这个配置,重新打包还原之前的场景,继续执行这个命令:
java -jar test.jar -Dlogging.config=classpath:logback-pro.xml
问题依旧,于是猜测应该是启动的时候,没加载到指定的配置,试着把-Dlogging.config=classpath:logback-pro.xml 提到 -jar 前,结果也终于达到预期
java -Dlogging.config=classpath:logback-pro.xml -jar test.jar
综述:
解决方案1: 在springboot的 properties 文件或者yml 文件中直接配置
logging.config=classpath:logback-pro.xml
解决方案2:
把所有指定的环境变量,都放在-jar 前面,保证能正常加载
java -Dlogging.config=classpath:logback-pro.xml -jar test.jar