log4j2滾動刪除丟日志的問題排查


    最近排查線上問題,遇到幾次線上日志從凌晨0點到全天的某一個隨機的時刻日志丟失了,如圖所示,打開每天的第一個文件不是從0點開始的日志,莫名其妙的丟失一部分日志。

   項目是spring-boot項目,日志的組件是log4j2

version=1.5.12.RELEASE
groupId=org.springframework.boot
artifactId=spring-boot-starter-log4j2


排查過程:
1、查看服務器的contab刪除日志的腳本,后來經排查分析否則。
2、推測分析可能是回滾刪除日志的log4j2配置有問題,經過查log4j2的源碼及配置和線上日志的現象對比分析。
問題的根源:LOG4J2 默認對壓縮文件只保留7個文件數量.
Once this values is reached older archives will be deleted on subsequent rollovers. The default value is 7.
官網:http://logging.apache.org/log4j/2.x/manual/appenders.html

 

 
        

 解決方案:

 找到原因,接下來的事就好辦了,

  1、在RollingFile 節點下的DefaultRolloverStrategy增加max屬性,比如:<DefaultRolloverStrategy max=“50”>解決。

  2、把回滾文件的大小增大,比如<SizeBasedTriggeringPolicy size="2GB"/>,在一定程序上也會側面解決這個問題









 

 
        

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM