LoggerMDCオブジェクト
コンポーネント情報 |
---|
ログ出力用のMDCオブジェクト。
このオブジェクトは、ロギングシステムの MDC(=Mapped Diagnostic Context(マップ化された診断コンテキスト))の隠蔽、および、代行を行います。
●サンプルコード
●設定ファイル「im_logger_XXXX.xml」
このオブジェクトは、ロギングシステムの MDC(=Mapped Diagnostic Context(マップ化された診断コンテキスト))の隠蔽、および、代行を行います。
設定ファイル(例:im_logger.xml)のレイアウト設定で「X{key}」または「mdc{key}」を記述することにより、 独自に定義したkeyで保存した情報をログに出力することが可能となります。 (設定方法は、ロギングAPIの実装ライブラリに依存します。)
●サンプルコード
1: // MDCに情報を保存 2: LoggerMDC.put("user_application_key", "MDCに値を設定しました。"); 3: 4: // ログの出力 5: Logger.info("処理を終了しました。");
●設定ファイル「im_logger_XXXX.xml」
1: <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 2: <layout class="ch.qos.logback.classic.PatternLayout"> 3: <pattern>[%level] %logger{10} - %X{user_application_key} %msg%n</pattern> 4: </layout> 5: </appender>
MDC利用時の注意事項
- MDCは、スレッド単位で情報を保存します。
- MDCに保存した内容は、明示的に初期化が行われない限り、値が初期化されることはありません。 そのため、必要に応じて初期化処理(MDC.remove(key))を行う必要があります。
- intra-mart WebPlatform/AppFrameworkでは、製品の標準ログ出力機能にてMDCを利用しています。 そのため、同一のkeyを使用した場合、正常にログが出力されなくなります。
メソッドの概要
メソッドの詳細
void clear ()
static
非推奨
代替えメソッドはありません。
MDCに設定されているすべてのエントリーを削除します。
このメソッドは、すべての処理を、ロギングシステムの MDC に委譲します。 MDCは、スレッド単位で情報を保存します。 そのため、このメソッドを利用した場合には、該当スレッドに紐付くMDCに設定されている情報が全て削除されます。 これにより、他のログ出力が正常に行われなくなる場合があります。 具体的には、intra-martが標準で提供しているリクエストログが正しく出力されなくなります。
返却値
|
String get (String key )
static
引数
key に関連付けられた値を取得します。
引数 このメソッドは、すべての処理を、ロギングシステムの MDC に委譲します。
パラメータ
返却値
|
void put (String key , String val )
static
指定された値 と 指定されたキー を現在のスレッドのコンテキストマップに設定します。
引数 このメソッドは、すべての処理を、ロギングシステムの MDC に委譲します。
パラメータ
返却値
|
void remove (String key )
static
引数
key に関連付けられた値を削除します。
引数 このメソッドは、すべての処理を、ロギングシステムの MDC に委譲します。
パラメータ
返却値
|