2017-06-16 105 views
-1

-log4j2默認側翻策略不刪除我已經設置了這樣的默認側翻戰略log4j2日誌

<RollingFile name="RollingFile" fileName="cc" filePattern="logs/${baseFileName}-%d{yyyy-MM-dd}.log.gz"> 
     <PatternLayout> 
      <pattern>%d{dd/MMM/yyyy HH:mm:ss,SSS}- %c{1}: %m%n</pattern> 
     </PatternLayout> 
     <Policies> 
      <TimeBasedTriggeringPolicy interval="1" modulate="true" /> 
     </Policies> 
     <DefaultRolloverStrategy> 
      <Delete basePath="logs/"> 
       <IfFileName glob="logs/${baseFileName}-*.log" /> 
       <IfLastModified age="2d" /> 
      </Delete> 
     </DefaultRolloverStrategy> 
    </RollingFile> 

所以應該刪除最早的文件,當它到達超過2天的正確嗎?

我的日誌文件存儲在一個名爲日誌文件夾中的項目的基本路徑..

但是我只是做了試運行,並得到了5個文件之前,我停止了....

任何想法可能會導致這種情況?

回答

1

請檢查以下配置以刪除舊文件: DefaultRolloverStrategy max =「10」表示每天最多可創建10個文件。 您可以使用IfAccumulatedFileCount超過=「2」來控制將始終存在多少個文件。 將指定文件的年齡,如果文件總數大於2(如IfAccumulatedFileCount中所指定),則將從當日起超過2天的文件刪除。

<DefaultRolloverStrategy max="100"> 
<Delete basePath="${baseDir}" maxDepth="2"> 
    <IfFileName glob="*/app-*.log"> 
    <IfLastModified age="2d"> 
     <IfAny> 
     <IfAccumulatedFileCount exceeds="2" /> 
     </IfAny> 
    </IfLastModified> 
    </IfFileName> 
</Delete> 

也許它正在尋找在不正確的路徑刪除文件或日誌文件是不是2日齡。 你正在使用哪個版本的log4j?它將適用於Log4j-2.5及以上版本