Apcoordinator ユーザーズガイド
目次 前ページ次ページ

第2部 Apcoordinatorコアの機能> 第5章 アプリケーションログ

5.1 基本機能

■ログ出力の基本操作

ログを出力するためには、LogComposerオブジェクトを使用します。これはアプリケーションクラスまたはDispatchContextから参照可能です。

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("処理を開始");
    }
}

■ログのレベル

Apcoordinatorのログには重要度のレベルを設定することができます。ログのレベルは0を最重要とし、数が大きくなるほど重要度が下がります。 レベルは任意に設定できます。
以下は、Apcoordinatorで使用しているレベルです。
レベル出力するログ説明
3: ApcoordinatorのエラーログのレベルUJIで始まるエラーコードとメッセージを出力
10: Apcoordinatorのインフォメーションログのレベル内部の実行状況を表すログを出力
20: ApcoordinatorのトレースログのレベルデータBeanのダンプや詳細な実行状況を表すログを出力
注意
Apcoordinatorが出力するログは、機能の追加や改善などにより、将来、変更される場合があります。
以下は、デフォルトで定義するログのレベルです。
レベル出力するログ説明
0: 最重要のログユーザアプリケーションが出力するログで最重要のレベルとして利用
5: ログレベル未指定メッセージのデフォルトレベルの初期値デフォルトの出力レベル
ログのレベルは、表示時に指定します。

        LogComposer lc = context.getApplicationProfile().getLogComposer();
        lc.println(7, "処理を開始");

レベルを指定しないとデフォルトのレベルが使用されます。デフォルトレベルの初期値は5ですが、setDefaultLevelメソッドで設定を変更できます。

        lc.setDefaultLevel(7);
        lc.println("処理を開始");

ログの出力レベルを設定することによって、不要なログ出力を抑制することができます。 デフォルトでは9(レベル9以下のログのみ出力)となっています。

        lc.setLogLevel(5);       // レベル5以下のログを出力

ログ出力レベルは初期化パラメタ、および、ログ定義ファイルでも設定することができます。ただし、setLogLevelメソッドでログ出力レベルが設定されている場合は、そちらが優先されます。初期化パラメタについては初期化パラメタを参照してください。ログ定義ファイルについては定義ファイルを用いたログ出力を参照してください。以下はWebアプリケーションでweb.xmlファイルにログ出力レベルを定義する例です。

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
      version="2.4">
  <context-param>
    <param-name>logLevel</param-name>
    <param-value>5</param-value>
  </context-param>
</web-app>

ログ出力のために文字列化の処理を行う場合、予めログレベルを判断することによって不要な処理を除外することができます。

        int level = 5;
        if(lc.isLogged(level)) {
            String message = "文字列の" + a + "演算は" + b + "ハイコスト";
            lc.println(level, message);
        }

■フォーマットの設定

LineLogFormatオブジェクトは、ログ出力のフォーマットを設定します。LogComposerオブジェクト作成時に任意のフォーマットを指定することができます。

        lc = LogComposer.getFileOutputInstance("c:\\myapp\\mylog.txt", true,
                        new LineLogFormat("%d %m"));

以下の指定により、システム情報を表示することができます。なお、コンテキストIDは、DispatchContextクラスから参照したLogComposerオブジェクトを使用した場合に出力されます。
%mメッセージ本文
%iコンテキストID
%d時刻
%tスレッド名
%sメソッド名
%lログレベル
%%%記号を表示する
例として"%d %m"の指定では以下のようなログが出力されます。
2001/01/05 16:47:49 uji:no entry in commands.map for TestUseBean.dataBean1;submit

下へ5.1.1 ユーザ定義のログ出力クラスの作成

目次 前ページ次ページ

All Rights Reserved, Copyright © 富士通株式会社 2000-2007