2016-05-13 40 views
1

以下是我的基于时间和大小的文件滚动的appenderLog4j2基于时间的滚动

<RollingFile name="fileWriter" fileName="${LOG_DIR}/file.log" 
    filePattern="${ARCHIVE}/file_log.%d{yyyy-MM-dd}-%i.gz"> 
    <PatternLayout pattern="${PATTERN}"/> 
    <Policies> 
     <TimeBasedTriggeringPolicy interval="1" modulate="true"/> 
     <SizeBasedTriggeringPolicy size="100 MB" /> 
    </Policies> 
</RollingFile> 

为了减少日志文件的数量,我想使它按时间翻转,使文件生成的30几天前自动删除。

DefaultRolloverStrategy可以帮我解决吗?如果没有,有人会提出一些建议吗?非常感谢。

回答

1

是的,DefaultRolloverStrategy会做你想做的。你应该能够配置:

<DefaultRolloverStrategy max="30"/> 

作为替代方案,你也可以指定删除操作是这样的:

<DefaultRolloverStrategy> 
    <Delete basePath="${ARCHIVE}" maxDepth="2"> 
     <IfFileName glob="*/file_log-*.gz" /> 
     <IfLastModified age="30d" /> 
    </Delete> 
    </DefaultRolloverStrategy>