Tomcatのlogsディレクトリにある、catalina.out。

デフォルトだとすぐに肥大化してしまうので、1日1度、ローテーションするように設定を変えましょう。

まずは、Tomcatの起動バッチファイルである、$CATALINA_HOME/bin/catalina.sh を編集する。

#この記述を削除
touch "$CATALINA_BASE"/logs/catalina.out

#下記の記述を変更する(変更箇所は2箇所)
# rotatelogsの位置は各環境にあわせる。
"$CATALINA_BASE"/logs/catalina.out 2>&1 &

| /usr/local/apache2/bin/rotatelogs "$CATALINA_BASE"/logs/catalina.out.%Y-%m-%d 86400 540 &

これで、Tomcatを再起動すれば、catalina.out.[日付]ファイルを作成してくれるようになる。毎日再起動の必要もなく安全だ。

そして、catalina.out.[日付]ファイルを削除するバッチも作成した。

PERL:
  1. #!/usr/bin/perl
  2.  
  3. use strict;
  4. use Date::Simple;
  5.  
  6. my $logdir = "/usr/local/tomcat/logs";
  7. my $store_day = 60;
  8.  
  9. my $date = Date::Simple->new();
  10. $date = $date - $store_day;
  11. my $deletedate = sprintf("%04d",$date->year)
  12.             .sprintf("%02d",$date->month)
  13.             .sprintf("%02d",$date->day);
  14.  
  15. opendir(DIR, $logdir);
  16. my @file = readdir(DIR);
  17. foreach my $file(@file){
  18.     if ($file =~ /^[^.]+\.([\d\-]+)\.log$/){
  19.         my $filedate = $1;
  20.         $filedate =~ s/\-//g;
  21.         if ($filedate <$deletedate){
  22.             `/bin/rm -f $logdir/$file`;
  23.         }
  24.     }
  25. }
  26. closedir DIR;

$logdirはTomcatログディレクトリの位置、$store_dayに保存する期間を日数で指定し、後はcrontabに1日1度削除するように設定すれば完了。

blogranking←ぽちっとな