log4j2の設定で削除ポリシーをどのように設定しますか?
log4j2では、ログファイルの削除操作を設定するためにDeleteポリシーを使用することができます。以下は一般的な削除ポリシーの設定例です。
- ログファイルの最大保存容量に基づいて古いログファイルを削除します。
<DefaultRolloverStrategy>
<Delete basePath="logs" maxDepth="2">
<IfFileName glob="logs/app-*.log" />
<IfLastModified age="7d" />
</Delete>
</DefaultRolloverStrategy>
logsフォルダー内のapp-*.logファイルを削除し、かつ最終更新日が7日を超えるファイルを削除します。
- ログファイルの数に応じて古いログファイルを削除する。
<DefaultRolloverStrategy>
<Delete basePath="logs" maxDepth="1">
<IfFileName glob="logs/app-*.log" />
<IfAccumulatedFileSize exceeds="100 MB" />
</Delete>
</DefaultRolloverStrategy>
上記の設定により、logsフォルダ内のapp-*.logファイルが100MBを超えるまで削除されます。
- 自分の条件に合わせて古いログファイルを削除する。
<DefaultRolloverStrategy>
<Delete basePath="logs" maxDepth="1">
<IfFileName glob="logs/app-*.log" />
<If condition="java.nio.file.Files.isRegularFile(java.nio.file.Paths.get($${basePath}), java.nio.file.LinkOption.NOFOLLOW_LINKS) && java.nio.file.Files.getLastModifiedTime(java.nio.file.Paths.get($${basePath}), java.nio.file.LinkOption.NOFOLLOW_LINKS).toMillis() <= 0" />
</Delete>
</DefaultRolloverStrategy>
もし、app-*.logという名前のファイルがlogsフォルダに存在していて、最終更新日時が0以下であれば、上記の設定はそのファイルを削除します。
これは一般的なlog4j2の削除戦略の設定例です。実際のニーズに合わせて調整や拡張を行うことができます。