Tomcatのログをlogrotateを使用して整理する

久しぶりにTomcatのログを確認すると多くの不要なログが溜まっていたので、自動で整理する仕組みをセットしました。

tomcat8 と tomcat9 ではログ整理の方法が微妙に違うらしく、情報が少なくて調査に時間がかかりました。記事に残しておきます。

まずTomcatのログがどこに出力されているか確認します。デフォルトの場所は次でした。

/usr/local/tomcat9/logs/*.log
/usr/local/tomcat9/logs/*.out
/usr/local/tomcat9/logs/*.txt

ログの出力場所は次のようにカスタムすることが出来ます。

Tomcat ログの保存期間、出力場所を指定する方法
Tomcat9 では、ログの設定を ${catalina.base}/conf/logging.properties に記載します。 ...

そして logrotate の設定ファイルを編集します。

# vi /etc/logrotate.conf

/usr/local/tomcat9/logs/*.log
/usr/local/tomcat9/logs/*.out
/usr/local/tomcat9/logs/*.txt
{
  copytruncate
  daily
  rotate 7
  missingok
  create 0644 tomcat tomcat
}

これで7日間(7個)のログのみ保持するようになりました。サービスの再起動などせず.confを更新するだけで設定が更新されます。