logback max size不生效?看看是不是scan scanPeriod的问题

对于日志的设置网上有很多资料,说的基本都一样,也都是对的。今天突然想到要测试下,看看这些设置是否有效。
logback配置信息如下:



    
    
    
    
        
            INFO
        
        
            %d{yyyy-MM-dd HH:mm:ss.SSS}: %p [%t] %c{1} %F:%L - %m%n
        
    
    
        
            ${logPath}/myproject-${logEnv}-%d{yyyy-MM-dd_HH_mm}.log
            1
            1MB
        
        
            %d{yyyy-MM-dd HH:mm:ss.SSS}: %p [%t] %c{1} %F:%L - %m%n
        
    

    
        
        
    

安装这个配置,启动项目,在项目中写个循环一直输出日志(确保每分钟的日志大于1MB或者接下来的两个文件大于1MB,便于测试),按理说第二分钟就会把之前的文件给清理掉,而且是每分钟生成一个新的文件。但实际上我测的时候等了三分钟多都只有启动的时候那一个日志文件,第二分钟没有重新生成新文件,也没有清理大的文件。
在网上搜了下,有个地方说是如果日志文件带路径不会被清理,而且官方(应该是官方也可能是spring boot官方回应)还回复说是已知bug,贴出来给大家看看logging.file.max-history is ignored when logging.file contains path。

不说这些了,既然网上大家都给出带path的这种方式,而且很少有人说无效,所以我觉得这种方式应该是没问题的。后来找了下之前的项目,对比下。发现配置文件的上部有scan, scanPeriod为5分钟。所以我之前的测试没有生效,可能是这块时间的问题,把这个时间改为1分钟,果然每分钟生成一个文件,而且还会把之前的日志文件删掉。

scan这个属性是用来查看配置信息的,scanPeriod的值是固定多长时间扫描一次,如设置了1MB的最大值,在scanPeriod的周期里会定时判断一次。

再后来上网查了下官方文档,对这里有详细的介绍,感兴趣的可以看下,这是属于logback的configuration属性: Logback configuration。

你可能感兴趣的:(SpringBoot,Logback)