snbhsmt_log

ネットワークとコンピュータ、その他いろいろ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Tomcat の Log4j 設定ファイルはシステム・プロパティで設定

Tomcat 5.5 に Commons Logging + Log4j を 利用するウェブアプリを配備すると、ワーニング・メッセージが出力されて そのコンテキストのログは全てコンソールに出力されてしまう。 Log4j 設定ファイルを log4j.configuration システム・プロパティに 設定すると解決した。

出力されるメッセージは以下。

log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax).
log4j:WARN Please initialize the log4j system properly.
Tomcat 5.5 本体のログ出力に JDK14Logging、Log4j のどちらを用いる 設定であろうと、WEB-INF/lib に commons-logging.jar と log4j.jar が 存在し、ウェブアプリのコード中に Log4j の初期化処理を記述せず Logger.getLogger() の様に単に Logger を取得して利用している場合に この現象が発生するようだ。

よく解らないが、Webapp クラスローダより優先される階層で Log4j の初期化がされているので、Webapp クラスローダのクラスパスに置いている Log4j 設定ファイルを見つけられない様な感じだ。

という事は、Log4j がどのクラスローダ階層で初期化されようと見つけられる場所に Log4j 設定ファイルを置けば良いので、 log4j.configuration システム・プロパティで指定する。

JAVA_OPTS=-Dlog4j.configuration=file:///path/to/log4j.properties
この方法で、ワーニングが出力される事も、デフォルトの出力先であるコンソールに ログ出力されてしまう事も無くなった。

  • Apache Tomcat 5.5.23
  • Log4j 1.2.14
スポンサーサイト

« Subversive をインストール|Top|Tomcat 5.5 は logging.properties を必ず読む »

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://snbhsmt.blog110.fc2.com/tb.php/50-698f31f1

Top

HOME

Author:snbhsmt
Google Profiles

http://www.ksky.ne.jp/~snbhsmt/

全ての記事を表示する

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。