[英]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.