snbhsmt_log

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

スポンサーサイト

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

Tomcat 5.5 の ClassLoaderLogManager

Tomcat 5.5 が標準で利用するログマネージャ org.apache.juli.ClassLoaderLogManager クラスは、 Java 標準の Logging API のログマネージャ java.util.logging.LogManager から幾つかの点が拡張されている。

まず、同じクラス名のハンドラを、名前を付けて複数定義できる様になっている。 数字で始まるハンドラは、ピリオドで区切られた 2 番目以降のトークンを ハンドラの FQCN として解釈する。 よって最初のトークンを変える事によって 同じハンドラのインスタンスを複数定義できる。

Tomcat 5.5 に標準で含まれる logging.properties には 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler の様に org.apache.juli.FileHanlder ハンドラが複数定義されていて、 複数のファイルにログ出力する様になっている。

次に、クラス・ローダ毎にログを管理する様になっている。 よって、ハンドラやロガー・ツリーがクラス・ローダ毎に存在する。 初期化も各クラス・ローダ毎に java.util.logging.LogManager と ほぼ同じ様に行われる。 なので shared/classes に logging.properties を置けば ウェブアプリ共通のログを制御できるし、 foo/WEB-INF/classes に置けば foo ウェブアプリのログのみを制御できる。

クラス・ローダ毎に logging.properties を置く場合、 以下の様にルート・ロガーのハンドラを定義しないでおく。 なぜかは解らないが、そうしないとログが 2 行づつ出力されてしまう様だ。

handlers = 1foo.org.apache.juli.FileHandler

#.handlers = 1foo.org.apache.juli.FileHandler

1foo.org.apache.juli.FileHandler.level = FINE
1foo.org.apache.juli.FileHandler.directory = ${catalina_base}/logs
1foo.org.apache.juli.FileHandler.prefix = foo.

jp.example.webapp.foo.level = FINE
スポンサーサイト

« Tomcat 5.5 で Log4j の XML 形式設定ファイルを利用|Top|net.ipv6.neigh.lo.base_reachable_time is deprecated »

コメント

コメントの投稿

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

トラックバック

http://snbhsmt.blog110.fc2.com/tb.php/46-078e98d4

Top

HOME

Author:snbhsmt
Google Profiles

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

全ての記事を表示する

この人とブロともになる

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