Apache Tomcatのログローティション

Tomcatのログローティションの設定について記載します。ちなみにWindowsです。
logging.propertiesファイルで以下の4種類のログは[maxDays]パラメータによりローテーションします。デフォルトですと90日で管理されています。
catalina.YYYY-MM-DD.log
localhost.YYYY-MM-DD.log
manager.YYYY-MM-DD.log
host-manager.YYYY-MM-DD. log


1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90
1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8

2localhost.org.apache.juli.AsyncFileHandler.level = FINE
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
2localhost.org.apache.juli.AsyncFileHandler.maxDays = 90
2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8

3manager.org.apache.juli.AsyncFileHandler.level = FINE
3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
3manager.org.apache.juli.AsyncFileHandler.maxDays = 90
3manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8

4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 90
4host-manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8

ですが、以下のログはローティンションさせる機能がTomcat(Windows版)にはありません。
・commons-daemon.YYYY-MM-DD.log
・tomcat8-stdout.YYYY-MM-DD.log
・tomcat8-stderr.YYYY-MM-DD.log
・localhost_access_log.YYYY-MM-DD.txt
Windowsはタスクスケジューラに削除用のバッチファイルを設定する必要があります。
Windowsは以下のコードをバッチファイルにして、 タスクスケジューラ に登録することでログローティションが可能になります。
forfiles /p [logの保存場所] /d -[削除対象となる過去の日数] /m ["ログファイル名のフォーマット"] /c "cmd /c del @file"

サンプルとしては下記の感じです。


c:\Apache\logフォルダにある形式に一致したファイルし90日が経過(最終更新日)しているファイルを削除する。
forfiles /p C:\Apache\logs /d -90 /m "commons-daemon.*.log" /c "cmd /c del @file"
forfiles /p C:\Apache\logs /d -90 /m "tomcat9-stderr.*.log" /c "cmd /c del @file"
forfiles /p C:\Apache\logs /d -90 /m "tomcat9-stdout.*.log" /c "cmd /c del @file"
forfiles /p C:\Apache\logs /d -90 /m "localhost_access_log.*.txt" /c "cmd /c del @file"

ご参考まで。

関連記事

TOP