SpringBoot1.5日志配置logging.file.max-history、max-size不生效

2021年10月27日11:35:44 發(fā)表評論 5,441 ℃

今天突然收到服務器告警磁盤快滿了,當時還是比較驚訝,因為服務日志我配置了大小和個數(shù)限制,鏡像和系統(tǒng)日志我也設置了定時清理。

才運行兩個月怎么這么快就要滿了,然后馬上登錄了其中一臺服務器排查,發(fā)現(xiàn)一些運行比較久的服務的容器占用了很大一部分容量,有一些服務容器甚至超過了10G。

最終確定罪魁禍首就是微服務的日志,這個是運行了兩個多月的部分服務日志截圖:

SpringBoot1.5日志配置logging.file.max-history、max-size不生效

但是我記得我很早之前就對日志配置優(yōu)化了。

開發(fā)默認配置是下圖這樣的,保留365天,每個文件不超過100MB。

SpringBoot1.5日志配置logging.file.max-history、max-size不生效

因為本身我們有日志系統(tǒng)采集存儲,所以服務器沒必要保留那么久的日志。我配置中心的日志配置是:

logging:
  level:
    root: INFO
  file:
    max-size: 50MB
    max-history: 3

只保留3天的,每個文件50MB。

但是從現(xiàn)在日志文件數(shù)量來看,我的配置沒有生效,因為當初配置以后也沒有測試。

這個不得不吐槽一下SpringBoot的配置,很多配置不統(tǒng)一,不同的版本也有可能不一樣,有的可能是駝峰格式,有的可能是'-'連接符。

但是這個logback的日志配置,網(wǎng)上找了好多文檔,當然大部分都是復制粘貼的,但都說SpringBoot1.5-SpringBoot2.4是這樣配置的。

于是我把max-size改成了10KB,再次測試,依然不生效。

最后讓開發(fā)看了下logging相關的配置,根本就不支持logging.file的配置,level的配置是支持的。

但測試直接修改logback-spring.xml的maxFileSize為10KB就生效的。

出現(xiàn)這種情況的原因,可能是SpringBoot(1.5.22)版本太低,或者logback(1.1.11)依賴版本太低了,再或者可能根本就不是logging.file.xxx這樣配置的。

但是沒有找到相關的文檔得以驗證。

難道幾十個微服務,我要每個服務去改logback-spring.xml文件嗎?

最后綜合考慮了下,只能在build之前,通過sed替換下logback-spring.xml的maxFileSize和maxHistory。

我也去看了下SpringBoot官網(wǎng)的日志配置,SpringBoot2.4以后又發(fā)生了變化,如下:

SpringBoot1.5日志配置logging.file.max-history、max-size不生效

【騰訊云】云服務器、云數(shù)據(jù)庫、COS、CDN、短信等云產(chǎn)品特惠熱賣中

發(fā)表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: