2016-10-31 318 views
0

毎日ロールする古いログファイルを削除する必要があります。試したファイルの数を制限する:Log4j2で古いファイルを削除する際のエラー

<RollingFile 
     name="FileAppender" 
     fileName="${baseDir}/mylog.log" 
     filePattern="${baseDir}/mylog %d{yyyy-MM-dd}.log.zip"> 
     <PatternLayout pattern="%d{ISO8601} [%p] %c{1} - %m%n"/> 
     <Policies>    
      <TimeBasedTriggeringPolicy interval="1" />    
     </Policies> 
     <DefaultRolloverStrategy max="5">   
    </RollingFile> 

ログは削除されません。

今私は

<DefaultRolloverStrategy> 
     <Delete basePath="${baseDir}" maxDepth="0">     
      <IfLastModified age="5d" /> 
     </Delete> 
    </DefaultRolloverStrategy> 

をtriyingよしかし、私はエラーを取得する:

ERROR DefaultRolloverStrategyが無効な要素や属性

を "削除" が含まれて私のlog4j2に何か問題があります.xmlファイル?あなたはLog4jののバージョンをアップグレードする必要が

<dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-core</artifactId> 
     <version>2.0.1</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-slf4j-impl</artifactId> 
     <version>2.0.1</version> 
    </dependency> 

答えて

1

は私がMavenを使用しています。削除機能は2.5で導入されました。最新バージョンは2.7です。最新のものを使うことをお勧めします。

また、maxDepth属性のドキュメントを確認してください。おそらく1つ以上指定する必要があります。ゼロはそのディレクトリ内のファイルではなく、ディレクトリ自体を意味します。

+0

ありがとうございましたDelete要素が承認されましたが、log4j2はファイルを削除しません。私はを定義しますが、コンピュータのシステム日付を変更してもログファイルは残っています。 –

+0

私は答えを更新しました。 MaxDepthはゼロであってはなりません。 –

+0

すべてが今働いています、もう一度ありがとう! –

関連する問題