logback配置文件不生效问题
今天在做测试环境部署的时候,因为新版本上线需要做安全测试,所以需要应用生成一种特定的日志文件,这个时候就需要配置logback配置文件,因为应用的底层框架是使用已经封装好的框架,对logback的配置也是有默认的配置文件,名称是logback-spring.xml,此时修改好本地环境需要的日志格式,运行之后能够生成我们想要的日志目录和对应下的日志文件。
此时将修改好的日志配置文件上传到测试环境,发现测试环境死活没有我们想要的目标日志输出,但是其他的日志就可以正常输出,在测试环境搜寻许久,发现测试环境的web容器有一个logback.xml。而且对照了日志格式,貌似正常输出的日志就是根据这个loback.xml输出的。但是为什么我自己配置了logback的配置在classpath下,却没有采用我自己的,而是使用了另外这个配置文件。于是开始在找答案之旅,看看logback的一些东西,最后找到了。
logback 在启动时,根据以下步骤寻找配置文件:
1⃣️在 classpath 中寻找 logback-test.xml文件
2⃣️如果找不到 logback-test.xml,则在 classpath 中寻找 logback.groovy 文件
3⃣️如果找不到 logback.groovy,则在 classpath 中寻找 logback.xml文件
4⃣️如果上述的文件都找不到,则 logback 会使用 JDK 的 SPI 机制查找 META-INF/services/ch.qos.logback.classic.spi.Configurator 中的 lo