Logback日志文件失效
2021-07-30碰到加了logback-spring.xml
依然不生效的问题,特此记录。
发现问题
在项目中引入logback-spring.xml
文件,该文件配置了会在项目根目录下生成logs文件夹,但是运行项目之后发现没有生成文件夹。
问题原因
classpath下已经存在logback.xml
文件
解决方案
spring默认会自动查找classpath下以下几个文件:
- logback-test.groovy
- logback-test.xml
- logback.groovy
- logback.xml
详见源码org.springframework.boot.logging.logback.LogbackLoggingSystem#getStandardConfigLocations
protected String[] getStandardConfigLocations() {
return new String[] { "logback-test.groovy", "logback-test.xml", "logback.groovy", "logback.xml" };
}
如果classpath下存在logback.xml
文件会默认使用,spring或默认自动拼接上-spring
后缀,即如果classpath下存在logback.xml
,会自动拼装成为logback-spring.xml
,
详见源码org.springframework.boot.logging.AbstractLoggingSystem#getSpringConfigLocations
protected String[] getSpringConfigLocations() {
String[] locations = getStandardConfigLocations();
for (int i = 0; i < locations.length; i++) {
String extension = StringUtils.getFilenameExtension(locations[i]);
locations[i] = locations[i].substring(0, locations[i].length() - extension.length() - 1) + "-spring."
+ extension;
}
return locations;
}
方案一
查看pom.xml依赖的jar包中是否存在logback.xml
文件,将该jar包删除。当然,既然项目中引入了该jar包说明是要用到的,所以不推荐。
方案二
在配置文件中指定日志配置文件地址:
logging:
config: classpath:logback-spring.xml
本文来自博客园,作者:Looveh,转载请注明原文链接:https://www.cnblogs.com/lvbok/p/logback.html