ログおよびトレースの拡張
アプリケーション・サーバーの High Performance Extensible Logging (HPEL) 機能には、開発者がログ・レコードおよびトレース・レコードに拡張フィールドを追加する方法が用意されており、それに対応してユーザーが拡張の値によってログ・レコードやトレース・レコードをフィルタリングする方法も提供されています。
ログ・レコードおよびトレース・レコードには、レコードの作成時刻や記録されるメッセージの内容などの情報が入るフィールドがあります。 これらのフィールドは、すべてのログ・レコードおよびトレース・レコードに存在するコア・フィールドです。 対照的に、拡張フィールドは、アプリケーション開発者がログ・レコードおよびトレース・レコードに追加することのできるフィールドで、ユーザーが特定のログおよびトレースの内容を検索する際にフィルター処理基準として使用することができます。 これらのログおよびトレースの拡張は、「拡張」フォーマットを使用するようにテキスト出力フォーマットを構成すると HPEL テキスト・ログで表示可能になり、また、拡張フォーマットで LogViewer コマンドを使用しても表示可能です。
- 管理者
アプリケーション・サーバーは、複数の拡張を自動的に作成し、ユーザーはそれらを使用してログ・レコードおよびトレース・レコードのフィルタリングができます。 また、アプリケーション開発者が追加した拡張を使用しても、ログ・レコードおよびトレース・レコードのフィルタリングを行うことができます。 LogViewer コマンド行ツールを使用すると、ログ・レコードおよびトレース・レコード拡張コンテンツに基づいてレコードをフィルタリングできます。
例えば、スレッド WebContainer : 6 によって作成されたすべてのレコードを表示する場合、次のように logViewer コマンドを使用することができます。logViewer -includeExtensions thread="WebContainer : 6" -format advanced
logViewer.sh -includeExtensions thread="WebContainer : 6" -format advanced
logViewer.bat -includeExtensions thread="WebContainer : 6" -format advanced
logViewer.sh -instance instance_id -includeExtensions thread="WebContainer : 6" -format advanced
- 開発者
開発者は、HPEL を使用することにより、ログ・レコード・コンテキスト API、com.ibm.websphere.logging.hpel.LogRecordContext を通じてカスタム拡張をログ・レコードおよびトレース・レコードに追加できます。 HPEL でログ・レコードおよびトレース・レコードを保管するときは、HPEL は同じスレッド上のログ・レコード・コンテキストに存在するすべての拡張をそこに含めます。例えば、サーブレット・フィルターを作成して、重要な HTTP 要求パラメーターをログ・レコード・コンテキストに追加することができます。 そのサーブレットの実行中、HPEL は、それらの拡張を、同じスレッド上で作成されたすべてのログ・レコードおよびトレース・レコードに追加します。
ログ・レコードおよびトレース・レコードの他のフィールドと同様、開発者は、HPEL API を使用してレコード拡張にアクセスできます。 この API は、ログ・リポジトリーおよびトレース・リポジトリーから読み取りを行うツールを作成するときに便利です。また、開発者は、ログ・レコード・コンテキスト API を使用して、カスタム・ログ・ハンドラー、フィルター、およびフォーマッターの拡張に実行時にアクセスできます。
次の表は、トレースをさまざまな側面からフィルタリングする際に使用できる ID を含む、ログおよびトレースの拡張について説明しています。
拡張子 | 説明 |
---|---|
appName | ログ・レコードまたはトレース・レコードに関連した Java™ Platform, Enterprise Edition (Java EE) アプリケーションの名前 (存在する場合) を示します。 |
requestID | ログ・レコードまたはトレース・レコードのそれぞれが関連する要求の固有の ID (存在する場合) を示します。 アプリケーション・サーバーがログ・レコードおよびトレース・レコードに requestID 拡張を追加するためには、管理コンソールでもログおよびトレースの相関として参照される Cross Component Trace (XCT) を使用可能にする必要があります。 要求 ID は、特定のタイプの要求 (例えば HTTP 要求や JMS 要求など) に対してのみ追加されます。 |
SIPCallId | SIP プロキシー・サーバーまたは SIP コンテナーにより処理されている SIP 呼び出し ID を示します。 この情報は、SIP プロキシー・サーバーおよび SIP コンテナー全体で共通です。 この拡張を使用して、さまざまなコンポーネントにまたがる SIP 呼び出しフローのトラッキングを行うことができます。 SIP プロキシー・サーバーおよび SIP コンテナーは、HPEL ロギングが使用可能にされると、この ID をログおよびトレースの各レコードに自動的に追加します。 |
SIPASId | SIP コンテナーにより処理されている SIP アプリケーション・セッション ID を示します。 この情報は、SIP コンテナー全体で共通です。 この拡張を使用して、SIP 呼び出しフローをトラッキングすることができます。 SIP コンテナーは、HPEL ロギングが使用可能にされると、この ID をログおよびトレースの各レコードに自動的に追加します。 |
SIPSessionId | SIP コンテナーにより処理されている SIP セッション ID を示します。 この情報は、SIP コンテナー全体で共通です。 この拡張を使用して、SIP 呼び出しフローをトラッキングすることができます。 SIP コンテナーは、HPEL ロギングが使用可能にされると、この ID をログおよびトレースの各レコードに自動的に追加します。 |
SIPCallId2 | SIP コンテナーにより処理されていて、同じ SIP アプリケーション・セッションに関連づけられている 2 つ目の SIP 呼び出し ID を示します。 この情報は、SIP コンテナー全体で共通です。 この拡張を使用して、SIP 呼び出しフローをトラッキングすることができます。 SIP コンテナーは、HPEL ロギングが使用可能にされると、この ID をログおよびトレースの各レコードに自動的に追加します。 単一の SIP アプリケーション・セッションに 3 つ以上の SIP 呼び出し ID が関連付けられている場合は、最初の 2 つの ID のみが記録されます。 追加の ID は記録されません。 |
SIPSessionId2 | SIP コンテナーにより処理されていて、同じ SIP アプリケーション・セッションに関連づけられている 2 つ目の SIP セッション ID を示します。 この情報は、SIP コンテナー全体で共通です。 この拡張を使用して、SIP 呼び出しフローをトラッキングすることができます。 SIP コンテナーは、HPEL ロギングが使用可能にされると、この ID をログおよびトレースの各レコードに自動的に追加します。 3 つ以上の SIP セッション ID が、単一の SIP アプリケーション・セッションと関連付けられている場合は、最初の 2 つの ID のみが記録されます。 追加の ID は記録されません。 |
thread | ログ・レコードまたはトレース・レコードのそれぞれが関連する要求のスレッド名を示します。 |