Interstage Application Server J2EE ユーザーズガイド
目次 索引 前ページ次ページ

第3部 EJB編> 第18章 アプリケーションを開発・テストする> 18.6 EJBアプリケーションのデバッグ> 18.6.1 スナップを利用したデバッグ

18.6.1.6 EJBアプリケーションのユーザデバック情報

 EJBアプリケーションのユーザデバッグ情報は、EJBアプリケーションからログ出力メソッドを呼び出す時に出力されます。

 ログ出力メソッドごとに出力されるユーザデバッグ情報の詳細は、“サポート対象ログ出力メソッド”を参照してください。

 ここでは、ユーザデバッグ情報をスナップファイルへ出力するための方法、出力形式および出力内容を説明します。

■ ユーザデバッグ情報の出力方法

 EJBアプリケーションのユーザデバッグ情報をスナップファイルへ出力するためには、ログ出力メソッドをEJBアプリケーションクラス内に記述します。記述手順は以下のとおりです。

  1. import文を記述します。
  2. デバッグ情報を出力するためのクラスを獲得します。
  3. 2.で獲得したクラスを使用して各種ログ出力メソッドの呼出しを行い、EJBアプリケーション任意のデバッグ情報を出力します。

 以下に例を示します。

image

package sample.ejb.entity.bmp;

   import java.rmi.*;
   import javax.ejb.*;
   import java.sql.*;
   import javax.sql.*;
   import javax.naming.*;
   import com.fujitsu.interstage.ejb.container.common.*; // ロギングクラスの追加----1

   public class EntityBMPUseLogger implements javax.ejb.EntityBean {
      // デバッグ情報を出力するためのクラス(Logger)を獲得
    private static Logger logger = Logger.getLogger("UseLoggerCMP"); // -----------2
    private boolean isDebug = false;

      ・・・ 省略 ・・・
    public void setEntityContext(javax.ejb.EntityContext ctx)
    throws javax.ejb.EJBException, java.rmi.RemoteException {
      isDebug = (java.lang.String)Ctx.lookup("Debug");
      ・・・ 省略 ・・・

      public EntityBMPUseLoggerPrimaryKey ejbCreate(int No, String Name, int Stock)
      throws javax.ejb.DuplicateKeyException, javax.ejbCreateException,
      javax.ejb.RemoteException {
        if(isDebug) { // Debug Mode ?
        // スナップにログを出力する
        logger.log(Level.FINE,"ejbCreate START"); // ---------------------------------3
        }
      ・・・ 省略 ・・・

◆ JDKのバージョンの違いによるコーディング方法

 JDK1.3を使用して、このデバッグを使用する場合は、Interstage EJBが提供するAPIを使用します。また、JDK1.4を使用する場合は、java.util.Loggingパッケージを使用します。

 JDK1.3とJDK1.4では、EJBアプリケーションを作成する際、以下の点が異なります。

■ 出力形式

 EJBアプリケーションから出力されたユーザデバッグ情報に日付、時間などの情報を加えて出力されます。

 各種ログ出力メソッドを使用して出力される形式は、以下の形式です。

 使用するAPIによって出力形式は異なります。詳細は、“サポート対象ログ出力メソッド”を参照してください。

 それぞれの出力形式を説明します。

1.メッセージ(指定文字列)だけを出力

日付 時間 : Log Message ログレベル メッセージ

2.メッセージ(指定文字列) + パラメタ(任意のObject)

日付 時間 : Log Message ログレベル メッセージ

Log Param :パラメタ情報

3.メッセージ(指定文字列) + 例外(任意の例外)

日付 時間 : Log Exception ログレベル メッセージ 例外情報

■ 出力内容

 以下に、出力項目と出力内容を説明します。

出力項目

出力内容

日付

デバッグ情報出力時の日付を“日/月/年”の形式で示します。

時間

デバッグ情報出力時の時間を“時:分:秒.ミリ秒”の形式で出力します。

Log Message

デバッグ情報であることを示します。

Log Exception

デバッグ情報(例外情報)であることを示します。

ログレベル

デバッグ情報のレベル(ログ出力メソッドへ指定したレベル)を下記文字列で出力します。

“[FINEST]”・“[FINER]”・“[FINE]”・“[CONFIG]”・“[INFO]”・“[WARNING]”・“[SEVERE]”

メッセージ

EJBアプリケーションが指定したデバッグ情報(任意の文字列)を出力します。

パラメタ情報
(Log Param)

EJBアプリケーションが指定したパラメタ情報(任意のObject)の型、値を以下のいずれかの形式で出力します。

  • (型)パラメタ
  • (型)<Object>

配列クラス、java.utilパッケージのHashtableなどは格納されているすべての値を出力します。

publicフィールドを持つユーザオブジェクト(Stringを除く)を復帰値として使用している場合は、“<Object>"を付加し、ObjectField項目の出力を行います。

例外情報

EJBアプリケーションが指定した例外情報(任意の例外)を出力します。

発生した例外に詳細文字列が含まれている場合は、その詳細文字列も出力されます。

フィールド情報
(ObjectField)

オブジェクトのpublicなフィールド情報を以下の形式で示します。

  • (型)フィールド名 = フィールド値
  • (型)フィールド名 = <Object>

プリミティブ型とString型の場合は型、変数名、値を出力します。

その他の場合は型、変数名、“<Object>"を出力します。

■ 出力例

 以下に、出力例を出力形式ごとに示します。

◆ メッセージ(指定文字列)

image

 メソッドが、logger.log(Level.INFO,"DBAccess start!!");の場合

23/10/2000 09:49:15.454 : Log Message: [INFO] DBAccess start!!

◆ メッセージ(指定文字列) + パラメタ(任意のObject)

image

 メソッドが、logger.log(Level.INFO," prepareStatement ",sql);
 (“sql”は、java.lang.String型とする)

23/10/2000 09:49:15.454 : Log Message: [INFO] prepareStatement

Log Param : (java.lang.String)"SELECT * FROM EMP_EJB1 WHERE (ID=?)"

◆ メッセージ(指定文字列) + 例外(任意の例外)

image

 メソッドが、logger.log(Level.SEVERE"Error!!", ex)の場合
 (“ex”は java.lang.Throwable型とする)

23/10/2000 09:49:15.454:LogException:[SEVERE] Error!! java.lang.NullPointerException

image

18.6.1.6.1 サポート対象ログ出力メソッド

 以下に、サポート対象であるログ出力メソッドの一覧を示します。

 ログ出力メソッドの詳細は、“Java 2 プラットフォーム API 仕様”を参照してください。



サポートメソッド

出力されるデバッグ情報

config(String msg)

ログレベル="[CONFIG]"

メッセージ=msgで指定した文字列

fine(String msg)

ログレベル="[FINE]"

メッセージ=msgで指定した文字列

finer(String msg)

ログレベル="[FINER]"

メッセージ=msgで指定した文字列

finest(String msg)

ログレベル="[FINEST]"

メッセージ=msgで指定した文字列

info(String msg)

ログレベル="[INFO]"

メッセージ=msgで指定した文字列

severe(String msg)

ログレベル="[SEVERE]"

メッセージ=msgで指定した文字列

warning(String msg)

ログレベル="[WARNING]"

メッセージ=msgで指定した文字列

log(Level level, String msg)

ログレベル=levelに対応する文字列

メッセージ=msgで指定した文字列

log(Level level, String msg, Object param1)

ログレベル=levelに対応する文字列

メッセージ=msgで指定した文字列

パラメタ情報=param1で指定した情報

log(Level level, String msg, Object[] params)

ログレベル=levelに対応する文字列

メッセージ=msgで指定した文字列

パラメタ情報=paramsで指定した情報

log(Level level, String msg, Throwable thrown)

ログレベル=levelに対応する文字列

メッセージ=msgで指定した文字列

例外情報=thrownで指定した情報

log(LogRecord record)

LogRecordクラスに設定した以下の情報を出力します。

ログレベル=setLevel()メソッドで設定したレベルに対応する文字列

メッセージ=setMessage()メソッドで設定した文字列

パラメタ情報=setParameters()メソッドで設定した情報

例外情報=setThrown()メソッドで設定した情報

注)パラメタ情報と例外情報が同時に設定されている場合、例外情報のみ出力され、パラメタ情報は出力されません。

logp(Level level,String sourceClass,String sourceMethod, String msg)

ログレベル=levelに対応する文字列

メッセージ=msgで指定した文字列

logp(Level level, String sourceClass, String sourceMethod,String msg,Object param1)

ログレベル=levelに対応する文字列

メッセージ=msgで指定した文字列

パラメタ情報=param1で指定した情報

logp(Level level, String sourceClass, String sourceMethod, String msg, Object[] params)

ログレベル=levelに対応する文字列

メッセージ=msgで指定した文字列

パラメタ情報=paramsで指定した情報

logp(Level level, String sourceClass, String sourceMethod, String msg, Throwable thrown)

ログレベル=levelに対応する文字列

メッセージ=msgで指定した文字列

例外情報=thrownで指定した情報

logrb(Level level, String sourceClass, String sourceMethod, String bundleName,String msg)

ログレベル=levelに対応する文字列

メッセージ=msgで指定した文字列

logrb(Level level, String sourceClass, String sourceMethod, String bundleName, String msg, Object param1)

ログレベル=levelに対応する文字列

メッセージ=msgで指定した文字列

パラメタ情報=param1で指定した情報

logrb(Level level, String sourceClass, String sourceMethod, String bundleName, String msg, Object[] params)

ログレベル=levelに対応する文字列

メッセージ=msgで指定した文字列

パラメタ情報=paramsで指定した情報

logrb(Level level, String sourceClass, String sourceMethod, String bundleName, String msg, Throwable thrown)

ログレベル=levelに対応する文字列

メッセージ=msgで指定した文字列

例外情報=thrownで指定した情報

throwing(String sourceClass, String sourceMethod, Throwable thrown)

ログレベル="[FINER]"

メッセージ="THROW"

例外情報=thrownで指定した情報


目次 索引 前ページ次ページ

All Rights Reserved, Copyright (C) 富士通株式会社 2006