2017-06-16 27 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及以上版本