0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

旧版Tomcat環境(5.5/6.0)でTomcat関連ログをログローテする

Last updated at Posted at 2017-09-19

はじめに

旧版Tomcat(5.5/6.0)でTomcat関連ログをログローテする方法について検討した結果を記載。

背景

ログローテのやり方自体についてはネット上探せばゴロゴロ出てくるのですが、
導入されているTomcatのバージョンによってログ周りの設定も色々異なるため、
備忘録としてこの記事を作成しました。
というかバージョン上がるたびにコロコロ設定変わり過ぎだろ

Tomcat5.5系

ログ周りの設定はTomcatインストール先/conf/logging.propertiesに記載されているのですが、
5.5系ではrotatableパラメータもないので、素直にcrontabにコマンド書いて定期的に削除するのが一番楽な気が。

0 0 * * * /usr/bin/find /Tomcatインストール先/logs/ -mtime +14 -exec rm -f {} \; > /dev/null 2>&1

上記の例だと毎日0時にlogsディレクトリの中のタイプスタンプの更新日時が2週間以上前のファイルを一括で削除する動作になります。findのパスやTomcatのインストール先は環境によって異なるはずなので環境に合わせて修正してください。

というかTomcat5.5系の場合は普通に使ってたらcatalina.out以外のログに、
何かしら書き込まれるのって再起動のタイミングくらいな気が

Tomcat6.0系

Tomcat6系だとlogging.propertiesのFileHandlerにrotatableパラメータが追加されているため、
こいつを明示的にfalseにしてやれば日付ごとにファイルは作成されず、
常に単一のファイルに追記されるようになります。

logging.properties
1catalina.org.apache.juli.FileHandler.suffix = log
1catalina.org.apache.juli.FileHandler.rotatable = false

2localhost.org.apache.juli.FileHandler.suffix = log
2localhost.org.apache.juli.FileHandler.rotatable = false

3manager.org.apache.juli.FileHandler.suffix = log
3manager.org.apache.juli.FileHandler.rotatable = false

4host-manager.org.apache.juli.FileHandler.suffix = log
4host-manager.org.apache.juli.FileHandler.rotatable = false

こんな感じ。
後はlogrotateでTomcat用の設定ファイルを追加してやれば、
細かくログローテの設定ができるはず。

/etc/logrotate.d/xxx(任意)
/Tomcatインストール先/logs/*.log
{
    copytruncate
    daily
    dateext
    missingok
    rotate 14
    compress
    create 0644 tomcat tomcat
}

Tomcatのユーザ名なんかはこれまた環境によって異なるかもしれないので
各自で自分の環境に合わせてください。

勿論5.5系と同じようにfindコマンドとrmコマンドを組み合わせて、
削除する方法も使えます。

Tomcat7.0系以降

Tomcat7.0系以降だとFileHandlerにmaxDaysプロパティが追加されたことで、
更に設定が楽になったようです。まだ試してないけど

デフォルトの設定を見た限りだと、ログは永久的に保存される設定になっていますが、
maxDaysプロパティに明示的に値を指定してあげることで、
ログを保管する期間を設定できるようです。

つまりログの種類によって保持する期間を変更したい場合など、
わざわざlogrotateに設定した上でログごとによって設定ファイルを分けたりする必要もなくなる訳ですね。

おわりに

サーバ複数台構成の大きいシステムだとサーバごとによってミドルウェアのバージョン違いによる細部の設定が異なったりするので、
何か変更を加える際は、導入されているバージョンで有効な設定なのか、十分な確認が必要ですね(ありきたり)。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?