logback max size不生效?看看是不是scan scanPeriod的問題

對於日誌的設置網上有很多資料,說的基本都一樣,也都是對的。今天突然想到要測試下,看看這些設置是否有效。
logback配置信息如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="5 minutes">
    <springProperty  scop="context" name="logEnv" source="spring.profiles.active" defaultValue="dev"/>
    <springProperty  scop="context" name="logPath" source="log.path" defaultValue="/var/log/mypath"/>
    <springProperty  scop="context" name="logLevel" source="log.level" defaultValue="warn"/>
    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}: %p [%t] %c{1} %F:%L - %m%n</pattern>
        </encoder>
    </appender>
    <appender name="log-file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${logPath}/myproject-${logEnv}-%d{yyyy-MM-dd_HH_mm}.log</fileNamePattern>
            <maxHistory>1</maxHistory>
            <totalSizeCap>1MB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}: %p [%t] %c{1} %F:%L - %m%n</pattern>
        </encoder>
    </appender>

    <root level="${logLevel}">
        <appender-ref ref="log-file" />
        <appender-ref ref="stdout" />
    </root>
</configuration>

安裝這個配置,啓動項目,在項目中寫個循環一直輸出日誌(確保每分鐘的日誌大於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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章