2016-05-13 43 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>