问题简述:
在SpringBoot中,如果修改logback.xml、logback-spring.xml等日志配置文件的资源路径时,无法正常加载。
解决问题的过程:
1.尝试网上的方法:在在项目配置文件application.properties中添加:logging.config=classpath:log/logback-spring.xml
结果不生效
下图是日志加载的源码文件 LogbackLoggingSystem.java,默认加载的就是这几个文件,一次搜索,若不存在,则搜索logback-spring.xml文件
2.后又尝试以注解的形式来来加载日志配置文件,但发现自动解析注入的方式好像没效果。手动写又不知道底层的方法且相对比较麻烦、不易让人读懂。
最后考虑是不是项目配置的原因,因为静态资源的加载路径为src/main/resources,于是尝试在其中增加一个reosources路径,我使用的是IEDA社区版开发工具,点击File=>Project Structure=>Modules(Shift+Crtl+Alt+S),在窗口的右侧点击Sources窗口,在项目中选择需要加载的文件的路径,选中后,点击上方的Resources,即可发现添加进去了,跑起来以后发现日志配置文件也生效了。
虽说问题解决了,但是发现可实行不高,如果别人git这个项目跑起来可能需要再次配置。
既然生效,那么就说明这是资源的加载导致的,为什么不配置资源的加载呢。
于是最后在pom.xml文件的<build>标签中中添加以下内容:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/java</directory>
</resource>
<resource>
<directory>src/main/resources/log</directory>
</resource>
</resources>
<!--此处省略其他配置-->
</build>
解决方案:
1.IDEA工具在Project Structure中增加日志文件所在的路径
2.在pom.xml添加日志文件的路径
(两种方法的具体内容见解决问题的过程)
我觉得有位博主的内容挺不错的,让我理解了日志的加载过程的内容,虽说对我的问题没能解决.https://www.jb51.net/article/132619.htm