Apcoordinator ユーザーズガイド |
目次 |
第2部 Apcoordinatorコアの機能 | > 第4章 APIを使ったプログラミング | > 4.2 アプリケーションログ |
import com.fujitsu.uji.log.*; public class SampleHandler extends com.fujitsu.uji.GenericHandler { .... public void startup(DispatchContext context) { .... LogComposer lc = context.getApplicationProfile().getLogComposer(); lc.println("処理を開始"); } }
ログ出力を無効にする場合は、空のLogComposerオブジェクトを返します。
public class SampleApplication extends com.fujitsu.uji.ApplicationProfile { public LogComposer newLogComposer() { LogComposer lc; try { lc = LogComposer.getFileOutputInstance("c:\\myapp\\mylog.txt", true, new LineLogFormat("%d %m")); } catch(IOException e) { return null; // デフォルトを使用 } lc.setQueueSize(1000); lc.enableQueue(); lc.setLogLevel(9); return lc; } }
public LogComposer newLogComposer() { return new LogComposer(); }
以下は、Apcoordinatorで使用しているレベルです。ログのレベルは、表示時に指定します。
レベル 出力するログ 説明 3: Apcoordinatorのエラーログのレベル UJIで始まるエラーコードとメッセージを出力 10: Apcoordinatorのインフォメーションログのレベル 内部の実行状況を表すログを出力 20: Apcoordinatorのトレースログのレベル データBeanのダンプや詳細な実行状況を表すログを出力 以下は、デフォルトで定義するログのレベルです。
Apcoordinatorが出力するログは、機能の追加や改善などにより、将来、変更される場合があります。
レベル 出力するログ 説明 0: 最重要のログ ユーザアプリケーションが出力するログで最重要のレベルとして利用 5: ログレベル未指定メッセージのデフォルトレベルの初期値 デフォルトの出力レベル
レベルを指定しないとデフォルトのレベルが使用されます。デフォルトレベルの初期値は5ですが、setDefaultLevelメソッドで設定を変更できます。
LogComposer lc = context.getApplicationProfile().getLogComposer(); lc.println(7, "処理を開始");
ログの出力レベルを設定することによって、不要なログ出力を抑制することができます。 デフォルトでは9(レベル9以下のログのみ出力)となっています。
lc.setDefaultLevel(7); lc.println("処理を開始");
ログ出力レベルは初期化パラメタ、および、ログ定義ファイルでも設定することができます。ただし、setLogLevelメソッドでログ出力レベルが設定されている場合は、そちらが優先されます。初期化パラメタについては初期化パラメタを参照してください。ログ定義ファイルについては定義ファイルを用いたログ出力を参照してください。以下はWebアプリケーションでweb.xmlファイルにログ出力レベルを定義する例です。
lc.setLogLevel(5); // レベル5以下のログを出力
ログ出力のために文字列化の処理を行う場合、予めログレベルを判断することによって不要な処理を除外することができます。
<web-app> <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); }
以下の指定により、システム情報を表示することができます。なお、コンテキストIDは、DispatchContextクラスから参照したLogComposerオブジェクトを使用した場合に出力されます。
lc = LogComposer.getFileOutputInstance("c:\\myapp\\mylog.txt", true, new LineLogFormat("%d %m"));
例として"%d %m"の指定では以下のようなログが出力されます。
%m メッセージ本文 %i コンテキストID %d 時刻 %t スレッド名 %s メソッド名 %l ログレベル %% %記号を表示する
2001/01/05 16:47:49 uji:no entry in commands.map for TestUseBean.dataBean1;submit
目次 |