tomcat の変更点


* tomcat [#ec733135]

-[[mod_jk]]~
-[[mod_jk2]]  obsolete~
-[[tomcat 4.1.x]]~
-[[tomcat 5.0.x]]~
-[[tomcat 5.5.x]]~
~

** tomcatのログファイル、catalina.out を再起動なしでローテーションする [#kcd5d8b4]

tomcatの出力するログはserver.xmlの設定によって、tomcatを再起動しなくてもローテーションすることが出来ます。~
しかし、catalina.outだけは標準出力と標準エラー出力をリダイレクトしたものなので、~
tomcatを再起動しなくてはローテーションが出来ません。~
~
しかし、rotatelogs を使えば対応できます。~
rotatelogs はapacheのオマケに付いてくるログローテーション用のプログラムで、~
Apacheの再起動無しログローテーションを実現できるものです。~
そしてrotatelogsは、Apacheのログに限らず様々なログ出力に使用可能なのです。~
~
tomcatの場合は次のように設定します。~
~
インストールディレクトリ以下にある bin/catalina.sh を編集します。~
最初に以下のようになっている場所を削除しましょう。~

 touch "$CATALINA_BASE"/logs/catalina.out

この部分は不要になるので削除してください。そして次に編集するのが以下のポイントです。

 >> "$CATALINA_BASE"/logs/catalina.out 2>&1 &

2カ所あるので注意ししてください。この部分二箇所を以下のように書き換えます

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

末尾の数字は604800毎にローテーションするという意味です。以上で設定完了です。~
あとはtomcatを起動すれば、catalina.out.2005-04-01の様な名前のログファイルができます。~
~
** url中に"//"が入っている場合の対応策 [#x3fe809b]
-context path設定の最後に「/」を含める。
 <Context path="/hoge" ... docBase="hoge" />
  ↓
 <Context path="/hoge/" ... docBase="hoge" />