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

5.6.3 ユーザ定義のログ出力クラスの作成

ULogComposer派生クラスを作成することで、ログ本文の編集を行う処理を記述することが可能です。
派生クラスでは、ログ本文の編集を行ったあとに、ULogComposerクラスのprintlnメソッドを呼び出し、ログ出力を行います。

派生クラスの作成

ログ本文の編集を行うようprintlnメソッドをオーバーライドし、ログを出力するULogComposer派生クラスの作成例を以下に示します。

/**
 * ログ本文の編集を行う派生クラスの作成例です。
 * この例では、基底クラスに ULogComposerを用いています。
*/
package my.sample;
import com.fujitsu.uji.ulog.ULogComposer;
import com.fujitsu.uji.ulog.ULogException;

public class MyULogComposer extends ULogComposer {
  public MyULogComposer() {
  }
  public void println(Object[] div, Object[] exp, Object msg) throws ULogException {
    // ログ本文の編集を行います。
    StringBuffer buf = new StringBuffer();
    buf.append(" PREFIX TEXT ");
    buf.append( String.valueOf(msg) );
    // 編集後に、基底クラスのメソッドを呼び出します。
    super.println(div, exp, buf.toString());
  }
}

ユーザ独自のメソッドを定義し、ログ本文の編集を行ってprintlnメソッドを呼び出し、ログを出力するULogComposer派生クラスの作成例を以下に示します。

/**
 * ログ本文の編集を行う派生クラスの作成例です。
 * この例では、基底クラスに ULogComposerを用いています。
 */
package my.sample;
import com.fujitsu.uji.ulog.ULogComposer;
import com.fujitsu.uji.ulog.ULogException;

public class MyULogComposer2 extends ULogComposer {
  public MyULogComposer2() {
  }
  public void myPrintln(Object[] div, Object[] exp, Object msg1, Object msg2) throws ULogException {
    // ログ本文の編集を行います。
    StringBuffer buf = new StringBuffer();
    buf.append( String.valueOf(msg1) );
    buf.append( "," );
    buf.append( String.valueOf(msg2) );
    // 編集後に、基底クラスのメソッドを呼び出します。
    println(div, exp, buf.toString());
  }
}

注意

ULogComposer派生クラスを作成する場合は、デフォルトコンストラクタを定義してください。

作成した派生クラスをログ定義ファイルに指定する定義例を以下に示します。

<logConfig>
        ....
  <!-- 作成した派生クラスを指定 -->
  <ulog name="ULog1" class="my.sample.MyULogComposer">
    <param name="schema" value="MYSCHEMA"/>
    <param name="table" value="ULOG01"/>
  </ulog>
  <ulog name="ULog2" class="my.sample.MyULogComposer2">
    <param name="schema" value="MYSCHEMA"/>
    <param name="table" value="ULOG02"/>
  </ulog>
        ....
</logConfig>