Cosminexus 機能解説

[目次][用語][索引][前へ][次へ]

18.3.8 ユーザログ機能を使用する場合の注意事項

ここでは,ユーザログ機能を使用する場合の注意事項について説明します。

<この項の構成>
(1) LogManagerのカスタマイズについて
(2) ユーザが作成したフィルタ・フォーマッタを使用する場合の注意
(3) ロガーとハンドラとの接続

(1) LogManagerのカスタマイズについて

J2SE標準のLogManagerは,java.util.logging.config.classなどのプロパティを使用してカスタマイズできます。ただし,Application Serverが提供するユーザログ機能を使用する場合,カスタマイズはしないでください。ユーザログ機能で使用するプロパティを使用したログ体系の構築では,J2EEサーバの起動時に,ユーザログ機能がLogManagerを使用してプロパティからログ構成を取得します。このため,LogManagerをユーザがカスタマイズすると,ログ構成の構築に失敗するおそれがあります。

また,アプリケーションのソースコード上でLogManagerのreadConfiguration(InputStream ins)メソッドなどを実行して,ロガーの構成を初期化した場合も,ユーザログ機能が構築したログ構成が失われます。このため,このメソッドは実行しないでください。

ただし,カスタマイズしたLogManagerが,すでに構築されているログの構成(LogManagerの内容)を完全に引き継いで,さらに独自の処理を追加した構造になっている場合は,カスタマイズ後もユーザログ機能を使用できます。

(2) ユーザが作成したフィルタ・フォーマッタを使用する場合の注意

ログメッセージの出力時に,ハンドラに接続している,ユーザ作成のフィルタが例外をスローした場合,ハンドラのisLoggableメソッド※1は,true※2を返します。

ハンドラに接続している,ユーザ作成のフォーマッタが例外をスローした場合,ハンドラはフォーマッタで整形したメッセージを出力できません。ユーザが指定したメッセージは,フォーマッタで整形しないで出力されます。

ユーザ作成のフィルタ,フォーマッタがスローした例外の内容については,cjexception.logを参照してください。

注※1
isLoggableメソッドは,ログメッセージの取捨選択を判定するメソッドです。

注※2
trueは,メッセージを出力対象とすることを意味します。

(3) ロガーとハンドラとの接続

ロガーには複数のハンドラを接続できますが,複数のロガーに同一の設定を持つハンドラ(CJMessageFileHandlerまたはCJMPMessageFileHandler)を接続することはできません。