簡體   English   中英

log4j2 RollingFile 只保留 4 天

[英]log4j2 RollingFile only keeping 4 days

我嘗試設置 log4j 來壓縮我的日志文件並將它們發送到掛載。 我在其中添加了日/月/年,試圖將其放入這樣的目錄中。

起初這似乎有效。

一段時間后回來,結果只有最近的 4 天存在。

這是我的配置:

<Configuration>
    <Appenders>

        <Console name="STDOUT" target="SYSTEM_OUT">
            <PatternLayout>
                <Pattern>
                    %d{yyyy-MM-dd HH:mm:ss.SSS} %-5p (%t) %c{1.} %m%n
                </Pattern>
            </PatternLayout>
        </Console>

        <RollingFile
                name="RollingFile"
                fileName="$/home/myservice/myservice.log"
                filePattern="/mnt/logbackups/$${date:dd-MM-yyyy}/myservice-%d{dd-MM-yyyy}-%i.log.gz" >
            <PatternLayout>
                <Pattern>
                    %d{yyyy-MM-dd HH:mm:ss.SSS} %-5p (%t) %c{1.} %m%n
                </Pattern>
            </PatternLayout>
            <Policies>
                <OnStartupTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="32 MB"/>
            </Policies>
        </RollingFile>
</Configuration>

我試着在文檔中尋找原因: https://logging.apache.org/log4j/2.x/manual/appenders.html

但我找不到任何東西。 然后又是一個巨大的頁面,也許我遺漏了什么。

有人知道為什么會這樣嗎?

您定義了將定期寫入新日志文件的 RollingFileAppender。 您還定義了何時寫入新文件的觸發器,但您沒有設置Rollover Strategies

  • 您可以在未設置 maxFiles 的情況下使用 DirectWrite Rollover Strategy(設置為大於零的值)。

  • 您還可以嘗試配置日志存檔保留策略/更新時刪除操作。 設置 testMode=true 以防止刪除任何文件。

您提到的大頁面上提供了示例。

您正在尋找的是Rollover Policies下指定的“默認滾動策略”。 您可以顯式添加一個以調整默認參數。

在 RollingFile 中這樣指定它:

<DefaultRolloverStrategy max="20"/>

盡管我很困惑,因為根據他們的文檔,默認值為 7:

最大 | integer | 計數器的最大值。 一旦達到此值,較舊的存檔將在后續更新時被刪除。 默認值為 7

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM