log4j2滚动日志问题排查

起因

项目中的日志框架使用了log4j2+slf4j的组合进行日志输出
log4j2配置的是RollingRandomAccessFile的滚动日志,设置了60天过期,可是并没有在30天后清除30天前的日志文件,导致了准生产环境中的磁盘存储空间预警报警;

排查

首先拿出其中info日志的配置进行排查

        <RollingRandomAccessFile name="FILE-INFO"
                                 fileName="${baseDir}/life-wrangler-info.log"
                                 filePattern="${baseDir}/life-wrangler-info.log.%d{yyyy-MM-dd}">
            <ThresholdFilter level="info" onMatch="ACCEPT"
                             onMismatch="DENY"/>
            <PatternLayout
                    pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %X{client_ip} [%t] %-5level [%logger{50}:%L] - %ddmsg%xEx{1}%n"
                    charset="UTF-8"/>
            <TimeBasedTriggeringPolicy interval="1"/>
            <DefaultRolloverStrategy max="1">
                <Delete basePath="${baseDir}" maxDepth="2">
                    <IfFileName glob="*life-wrangler-info.*.log"/>
                    <IfLastModified age="60d"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingRandomAccessFile>```

1、首先是想到配置文件中是否配置错误了滚动日期,检查之后确认配置的是60d,配置时间错误的可能性排除;
2、考虑到d的大小写是否可能有影响,也进行了D和d的切换尝试,结果并无区别,大小写影响的可能性排除;
3、查阅网上资料后,得知log4j2,在DefaultRolloverStrategy节点配置的IfFileName匹配规则是需要RollingRandomAccessFile的filePattern属性配置含有%i这一项的,于是补充了%i之后就解决了

分析

待续

参考资料

https://www.cnblogs.com/yeyang/p/7944899.html
https://blog.csdn.net/CringKong/article/details/103483043

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值