本文通过项目中的日志配置问题,引出并总结一下spring boot 2.1.x 中 log4j2 的配置
现象
在服务器上调试项目的时候,发现日志文件生成的路径有问题,总是找不到日志位置,后来测试发现每次都在当前目录下生成 log/xxx.log
查看项目配置如下:
logging.level.com.xxx.yyy=INFO
logging.file=log/xxx.log
在resource目录下,有log4j.properties(记住这个文件名称),内容如下
解决(测试基于spring boot 2.1.5)
1、因为对此配置不熟悉,直接修改了配置文件中的appender.File值为绝对路径,后经测试根本不生效
2、修改spring boot 配置文件中的logging.file为绝对路径,发现配置生效
所以其实是log4j的配置文件根本就没有被加载
3、查看spring boot 官方文档,可以看到如下说明
支持如上几种log system以及各自的自动加载的配置文件名称,唯独没有看到 .properties 后缀的支持,觉得不应该
4、只能通过源码来找答案了
AbstractLoggingSystem
@Override
public void initialize(LoggingInitializationContext initializationContext,
String configLocation, LogFile logFile) {
// 如果指定了log配置文件路径(logging.config)
if (StringUtils.hasLength(configLocation)