0%

log4j2自动删除日志文件

log4j2自动删除日志文件

线上的项目每天产生大量的日志文件,而磁盘大小又是有限的,不可能一直把日志文件保留下来,但是每次磁盘报警上去删日志文件也挺麻烦的,log4j2中可以配置日志文件的删除策略。

在DefaultRolloverStrategy中配置Delete,当触发了滚动时,就会执行DefaultRolloverStrategy中配置的各个Action操作,而Delete标签就表示的DeleteAction

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<DefaultRolloverStrategy max="30">
<!-- basePath表示扫描开始的路径
maxDepth 表示目录的扫描深度,2表示扫描basePath文件夹及其子文件夹
-->
<Delete basePath="${LOG_HOME}" maxDepth="2">
<!-- IfFileName 指定文件名满足的条件 -->
<IfFileName glob="*/*.bz2"/>
<!--!Note: 这里的age必须和filePattern协调, 后者是精确到天,age的单位就是天
另外, 数字最好>2, 否则可能造成删除的时候, 最近的文件还处于被占用状态,导致删除不成功!-->

<!-- IfLastModified 指定文件修改时间满足的条件 -->
<IfLastModified age="30d"/>
</Delete>
<Delete basePath="${LOG_HOME}" maxDepth="1">
<!--!Note: 这里的age必须和filePattern协调, 后者是精确到天,age的单位就是天
另外, 数字最好>2, 否则可能造成删除的时候, 最近的文件还处于被占用状态,导致删除不成功!-->

<IfLastModified age="30d"/>
</Delete>
</DefaultRolloverStrategy>

欢迎关注我的其它发布渠道