Message Queue プロバイダは、ログレベルやログ活動に関連付けて一連のログの名前空間を定義します。Message Queue クライアントは、ログ設定が適切であれば、この名前空間を使用して接続やセッションイベントをログに記録することができます。
Message Queue クライアントランタイムのルートのログ名前空間は、javax.jms と定義されます。Message Queue クライアントランタイム内のすべてのロガーが、この名前を親の名前空間として使用します。
Message Queue クライアントランタイムに使用されるログレベルは、java.util.logging.Level クラス内で定義されるものと同じです。このクラスでは、7 つの標準ログレベルと、ログのオン/オフに使用できる 2 つの追加設定が定義されます。
ログをオフにします。
優先順位が最高である最高値。アプリケーションで定義します。
アプリケーションで定義します。
アプリケーションで定義します。
アプリケーションで定義します。
アプリケーションで定義します。
アプリケーションで定義します。
優先順位が最低である最低値。アプリケーションで定義します。
すべてのメッセージのログを有効にします。
一般に、Message Queue クライアントランタイム内で発生した例外やエラーは、名前空間 javax.jms を使用するロガーによってログ記録されます。
JVM からスローされクライアントランタイムによってキャッチされる例外 (IOException など) は、ログ名前空間 javax.jms を使用するロガーによって WARNING レベルでログ記録されます。
クライアントランタイムからスローされる JMS 例外 (IllegalStateException など) は、ログ名前空間 javax.jms を使用するロガーによって FINER レベルでログ記録されます。
JVM からスローされクライアントランタイムによってキャッチされるエラー (OutOfMemoryError など) は、ログ名前空間 javax.jms を使用するロガーによって SEVERE レベルでログ記録されます。
以下の表は、JMS コネクションとセッションについて、ログ記録できるイベントとログイベントに対して設定する必要のあるログレベルを示しています。
次の表は、コネクションのログレベルとイベントについて示したものです。
表 1–6 名前空間 javax.jms.connection のログレベルとイベント
ログレベル |
イベント |
---|---|
FINE |
接続が作成されました |
FINE |
接続が起動しました |
FINE |
接続が閉じました |
FINE |
接続が破棄されました |
FINE |
再接続されました |
FINER |
その他の接続アクティビティー (setClientID など) |
FINEST |
メッセージ、通知、Message Queue アクション、制御メッセージ (トランザクションのコミットなど) |
セッションの場合、次の情報がログレコードに記録されます。
コンシューマに配信されるメッセージの各ログレコードには、ConnectionID、SessionID、ConsumerID が含まれています。
プロデューサによって送信されるメッセージの各ログレコードには、ConnectionID、SessionID、ProducerID、送信先名が含まれています。
次の表は、セッションのログレベルとイベントについて示したものです。
表 1–7 名前空間 javax.jms.session のログレベルとイベント
ログレベル |
イベント |
---|---|
FINE |
セッションが作成されました |
FINE |
セッションが閉じました |
FINE |
プロデューサが作成されました |
FINE |
コンシューマが作成されました |
FINE |
送信先が作成されました |
FINER |
その他のセッションアクティビティー (セッションのコミットなど)。 |
FINEST |
メッセージがプロデュースされ、消費されました。(メッセージのプロパティーと本文はログレコードに記録されません。) |
デフォルトでは、出力ログレベルはアプリケーションの実行されている JRE から継承されます。JRE_DIRECTORY/lib/logging.properties ファイルを参照してレベルを確認してください。
ログはプログラムや設定ファイルを使用して設定できます。また、ログの発生する範囲を制御することもできます。次の節では、これらの機能について説明します。