如何配置Log4j2以在X天后删除文件

时间:2017-03-07 16:49:05

标签: logging log4j log4j2

我有一个Log4j2的特定请求。我们的设置在Java 6上运行,暂时无法升级。因此我可以使用的最高版本的Log4j2是2.3.x。我希望使用Log4j2配置在X天后删除日志文件。是否有可能直接或通过编写自定义处理程序?

我现在拥有的:

   <Properties>
    ...
    <Property name="PAYLOADfilename">${sys:com.x.payload.logfile}    </Property>
   </Properties>
   <Appenders>
            ...    
            <RollingRandomAccessFile name="PAYLOAD" fileName="${PAYLOADfilename}" filePattern="${PAYLOADfilename}_%d{ddMMyyyy}_%i">
                <PatternLayout>
                    <Pattern>[%d] %p %c{1} [%t] %m%n</Pattern>
                </PatternLayout>
                <Policies>
                    <TimeBasedTriggeringPolicy />
                    <SizeBasedTriggeringPolicy size="100 MB"/>
                </Policies>
                <DefaultRolloverStrategy max="99"/>
            </RollingRandomAccessFile>      
        </Appenders>
 <Loggers>
...
</Loggers>

1 个答案:

答案 0 :(得分:0)

您可以使用库中的reference you could find here类,并将其配置为保留特定金额天数的备份。

您可以参考我从我的环境中附加的示例代码段:

log4j.rootLogger=debug, stdout, R
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.MaxFileSize=1024KB
log4j.appender.R.File=console.log
log4j.appender.R.MaxBackupIndex=15
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

这里我将在过去15天内进行备份,您可以根据自己的要求进行配置。

注意:如果您需要更多理解,请在此处回复。