ページの先頭行へ戻る
 Apcoordinatorユーザーズガイド

5.4 コンテキストIDの出力

Webアプリケーションがリクエストを受け付けるごとにコンテキストIDを生成します。 WebアプリケーションからEJBアプリケーションを呼び出した場合に、WebアプリケーションとEJBアプリケーションで同一のコンテキストIDがログに出力されます。コンテキストIDにより、WebアプリケーションからEJBアプリケーションを呼び出す両者のログを対応づけて参照することが可能となります。

コンテキストIDの生成

コンテキストIDはセションIDを組み込んで生成されます。初期化パラメタuji.log.contextidModeの指定によってコンテキストIDの長さが異なります。

省略時はtrueです。
以下はweb.xmlで初期化パラメタuji.log.contextidModeを指定する例です。

    <context-param>
     <param-name>uji.log.contextidMode</param-name>
     <param-value>true</param-value>
    </context-param>

ログ出力の操作

コンテキストID付きのログを出力するには、DispatchContextクラスから取得したLogComposerを使用します。

import com.fujitsu.uji.log.*;
import com.fujitsu.uji.GenericHandler;

public class SampleHandler extends GenericHandler
{
    ....

    public void startup(DispatchContext context) {
        ....
        LogComposer lc = context.getLogComposer();
        lc.println("処理を開始");
    }
}

デフォルトのフォーマット「%d %i%m」で出力した場合、以下のように出力されます。

2008/01/31 20:40:07 [0140-1U758OIN0N39RFV1A9NLFPVOERUUNJ3NEBBI169TNLLBG963Q8C9QCD5PSBG200008000000.IJServer_001-001]処理を開始

アプリケーションクラスから取得したLogComposerを使用するとコンテキストIDは出力されません。

import com.fujitsu.uji.log.*;
import com.fujitsu.uji.GenericHandler;

public class SampleHandler extends GenericHandler
{
    ....

    public void startup(DispatchContext context) {
        ....
        LogComposer lc = context.getApplicationProfile().getLogComposer();
        lc.println("処理を開始");
    }
}

デフォルトのフォーマット「%d %i%m」で出力した場合、以下のように出力されます。

2004/08/19 9:48:17 処理を開始