ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド

3.11.6 J2EEアプリケーションのユーザデバッグ情報

J2EEアプリケーションのユーザデバッグ情報は、J2EEアプリケーションからログ出力メソッドを呼び出す時に出力されます。
ログ出力メソッドごとに出力されるユーザデバッグ情報の詳細は、“3.11.7 サポート対象ログ出力メソッド”を参照してください。

ここでは、ユーザデバッグ情報をコンテナログへ出力するための方法、出力形式および出力内容を説明します。

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

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

  1. import文を記述します。

  2. デバッグ情報を出力するためのクラスを獲得します。

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

以下に例を示します。

  package  sample.ejb.entity.bmp;
  
    import java.rmi.*;
    import javax.ejb.*;
    import java.sql.*;
    import javax.sql.*;
    import javax.naming.*;
    import java.util.logging.*; //ロギングクラスの追加 (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 {
        ・・・省略・・・
        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)
          }
        ・・・省略・・・

ユーザデバッグ情報以外のログ出力を抑止する方法

J2EEアプリケーションのユーザデバッグ情報を出力する場合(IJServerのJava VMオプションに-DFJSNAP=10もしくは11もしくは12を設定した場合)、コンテナログにIJServerプロセスで動作するモジュールや他社製品のモジュール(JDBCドライバ)でJDKが提供するjava.util.loggingパッケージを使用してロギングしていた情報も出力されます。
J2EEアプリケーションのユーザデバッグ情報以外のログを出力させたくない場合は、以下を定義してください。

定義ファイル格納ディレクトリ

C:\Interstage\EJB\etc

/opt/FJSVejb/etc

定義ファイル名

FJlogging.properties

変更する定義 (1)

.level=OFF

追加する定義 (2)

“Logger名”=ALL
定義例: (Logger名がUseLoggerCMPの場合)
UseLoggerCMP.level=ALL

注1)

.levelの初期設定値はALLとなっています。OFFに変更してください。

注2)

J2EEアプリケーションがLogger作成時に使用しているLogger名を指定してください。
J2EEアプリケーションが利用しているオープンソースのユーティリティモジュール(例Commons-logging)・フレームワーク、またはIJServerプロセスで動作する他社製品(JDBCドライバ等)が、java.util.loggingパッケージを使用して出力しているログの情報を取得したい場合は、公開されているドキュメントを参照してLogger名を確認してから定義を追加してください。

出力形式

J2EEアプリケーションから出力されたユーザデバッグ情報に日付、時間などの情報を加えて出力されます。
各種ログ出力メソッドを使用して出力される形式は、以下の形式です。
使用するAPIによって出力形式は異なります。詳細は、“3.11.7 サポート対象ログ出力メソッド”を参照してください。
それぞれの出力形式を説明します。

出力内容

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

出力項目

出力内容

日付

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

時間

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

Log Message

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

Log Exception

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

ログレベル

デバッグ情報のレベル(ログ出力メソッドへ指定したレベル)を下記文字列で出力します。
"[FINEST]","[FINER]","[FINE]","[CONFIG]","[INFO]","[WARNING]","[SEVERE]"

メッセージ

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

パラメタ情報
(Log Param)

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

  • (型)パラメタ

  • (型)<Object>

配列クラス、java.utilパッケージのHashtableなどは格納されているすべての値を出力します。
publicフィールドを持つユーザオブジェクト(Stringを除く)を復帰値として使用している場合は、“<Object>”を付加し、ObjectField項目の出力を行います。

例外情報

J2EEアプリケーションが指定した例外情報(任意の例外)を出力します。
発生した例外に詳細文字列が含まれている場合は、その詳細文字列も出力されます。

フィールド情報
(ObjectField)

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

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

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

プリミティブ型とString型の場合は型、変数名、値を出力します。
その他の場合は型、変数名、“<Object>”を出力します。

出力例

以下に、出力例を示します。

注意

  • J2EEアプリケーションのユーザデバッグ情報を取得するとき以外に、スナップを出力するための記述をプログラム上にしないでください。ログ出力メソッド呼出し時のオーバヘッドにより、性能劣化する場合があります。
    スナップの環境を設定しない場合、または、IJServerの起動時に指定するスナップの出力レベルを1または2にしてスナップ出力をした場合、J2EEアプリケーションのデバッグ情報がコンテナログに出力されることはありませんが、プログラミングするときは、注意してください。

  • J2EEアプリケーションからjava.util.logging.LogManagerクラスのメソッドを使用しないでください。スナップ機能利用時に正常に動作しない場合があります。

  • J2EEアプリケーションのユーザデバッグ情報を取得する場合、Interstageが出力しているデバッグ情報も合わせて出力されますが、動作に問題はありません。