web-dev-qa-db-ja.com

Tomcat 5.5:ログ出力をWebアプリケーションごとに1つのファイルにリダイレクトする方法

各Webアプリケーション/コンテキストのstdoutとstderrの出力が1つのログファイルに送られるようにTomcat5.5(または6.0)を構成するにはどうすればよいですか?

Stderrを特定のログファイルに取得することしかできませんでした-アプリケーションのstdoutはまだcatalina.outに移動しました。

5
MRalwasser

私は次の情報を見つけました、これはあなたを助けるはずだと思います。

これを試して、

  1. 各アプリケーションは、独自のlog4jを使用する必要があります。これは、各アプリケーションのWEB-INF/libにlog4j.jarを配置することで実現できます。
  2. 各log4jの構成ファイル(デフォルトの場所はWEB-INF/classes)で、ログファイル名を指定します。例: log4j.appender.AppLog.File = $ {catalina.home} /logs/app1.log。
  3. Stdout、stderrが独自のログに移動するように、コンテキストごとにswallowOutput = "true"を追加します。

これはTomcat5.5で行いますが、6.0でも機能するはずです。

編集:これがMETA-INF /context.xmlです。

WEB-INF/web.xml

http://Tomcat.Apache.org/Tomcat-6.0-doc/logging.html

http://Tomcat.Apache.org/Tomcat-5.5-doc/logging.html

5
Mit Naik

stdoutは、catalina.shスクリプトのcatalina.outを指します。これは、Tomcatサーバー全体に適用されます。

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

私はこれが完全な答えではないことを知っています-どこを見ればよいかをあなたに伝えるだけです。

0
JoseK

出力を分離する別の方法は、Webアプリケーションごとに1つのTomcatインスタンスを実行することです。このようにして、webappログ​​だけでなく、他のログファイル、JVMパラメータ、インスタンスの開始と停止なども分離できます。

ステップバイステップガイド ここ を見つけることができます。

0
Christian