Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 拡張編


8.2.2 ユーザログ出力の仕組み

ユーザログを出力するJ2EEアプリケーション,バッチアプリケーション,およびEJBクライアントアプリケーションの実装には,J2SEのJavaロギングAPIを使用できます。JavaロギングAPIは,メモリ,コンソール,ファイルなどのさまざまな出力ができる汎用性の高いAPIです。ただし,ロジックが単純なため,ミッション・クリティカルなシステムに適用する場合は,信頼性と耐久性を備えたログ出力用クラスをアプリケーション開発者が実装する必要があります。

ユーザログ機能を使用すると,アプリケーション開発者によってログ出力用クラスを実装しなくても,信頼性が高いユーザログを出力できます。

JavaロギングAPIを使用して開発したJ2EEアプリケーション,バッチアプリケーション,およびEJBクライアントアプリケーションから出力されたログは,トレース共通ライブラリを使用して,ほかのアプリケーションサーバシステムの構成ソフトウェアが出力する形式(トレース共通ライブラリ形式)で出力できます。このライブラリを使用することで,ユーザログをほかのシステムのログと同じ形式で扱うことができ,高い信頼性を持つ統一的なログ運用ができます。

ユーザログ出力は,J2SEのJavaロギングの仕組みに従って出力します。Javaロギングでは,ロガーハンドラという2種類の要素を使用します。なお,ロガーおよびハンドラは,それぞれ,LoggerクラスおよびHandlerクラスのオブジェクトです。

Javaロギングの仕組みを次の図に示します。

図8‒2 Javaロギングの仕組み

[図データ]

図について説明します。

  1. アプリケーションから,ロガーを使用して,ユーザログを出力します。

    ユーザログは,アプリケーションの処理の中で,Loggerクラスのメソッドを使用して出力されます。

  2. ロガーは,アプリケーションから出力されたログにレベルやメッセージ文字列などの付加情報を追加してLogRecordにしたものを,ハンドラに渡します。

    なお,このとき,ロガーに接続されたフィルタ(Filterクラスのオブジェクト)を使用して,ログレベルとして指定する制御以上のきめ細やかな制御をすることもできます。

  3. ハンドラは,受け取ったLogRecordを基に,ログをファイル,コンソールまたはソケットに出力します。

    出力先や出力形式は,あらかじめハンドラのプロパティとして設定しておきます。ハンドラでは,ハンドラに接続されたフィルタを使用してきめ細やかな制御ができます。また,フォーマッタ(Formatterクラスのオブジェクト)を使用して任意の形式にフォーマットしたメッセージを出力できます。

アプリケーションサーバでは,トレース共通ライブラリ形式でログをファイルに出力するためのファイルハンドラを提供しています。提供しているファイルハンドラについて,アプリケーションの種類ごとに説明します。