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"/>,在一定程序上也会侧面解决这个问题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)