log4j2定期刪除日誌檔案的配置

蓝易云發表於2024-12-10

在Log4j 2中,你可以使用 Delete策略來定期刪除日誌檔案。以下是一個配置示例,演示如何在Log4j 2中配置定期刪除日誌檔案:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">

<Appenders>
    <RollingFile name="RollingFile" fileName="logs/app.log"
                 filePattern="logs/app-%d{MM-dd-yyyy}-%i.log.gz">
        <Delete basePath="logs" maxDepth="1">
            <IfFileName glob="app-*.log.gz" />
            <IfLastModified age="7d" />
        </Delete>
        <PatternLayout pattern="%d %-5p [%t] %c: %m%n" />
        <Policies>
            <TimeBasedTriggeringPolicy />
            <SizeBasedTriggeringPolicy size="10 MB" />
        </Policies>
        <DefaultRolloverStrategy max="10" />
    </RollingFile>
</Appenders>
<Loggers>
    <Root level="info">
        <AppenderRef ref="RollingFile" />
    </Root>
</Loggers>

</Configuration>

在上面的示例中,<Delete>元素用於配置定期刪除日誌檔案。具體來說,以下是配置的要點:

basePath="logs":指定日誌檔案的基本路徑。
<IfFileName glob="app-*.log.gz" />:指定要刪除的檔案的檔名匹配模式。
<IfLastModified age="7d" />:指定檔案的最後修改時間必須超過7天,才會被刪除。
注意,上述配置會刪除7天前的所有 app-*.log.gz日誌檔案。你可以根據需求調整 <IfFileName>和 <IfLastModified>的引數以及其他配置。配置中的其他部分(如 <PatternLayout>、<Policies>和 <DefaultRolloverStrategy>)用於日誌檔案滾動和策略。

確保將以上配置嵌入到你的Log4j 2配置檔案中,並根據專案的需求進行適當的調整。

相關文章