ユーザログを出力するJ2EEアプリケーション,バッチアプリケーション,およびEJBクライアントアプリケーションの実装には,J2SEのJavaロギングAPIを使用できます。JavaロギングAPIは,メモリ,コンソール,ファイルなどのさまざまな出力ができる汎用性の高いAPIです。ただし,ロジックが単純なため,ミッション・クリティカルなシステムに適用する場合は,信頼性と耐久性を備えたログ出力用クラスをアプリケーション開発者が実装する必要があります。
ユーザログ機能を使用すると,アプリケーション開発者によってログ出力用クラスを実装しなくても,信頼性が高いユーザログを出力できます。
JavaロギングAPIを使用して開発したJ2EEアプリケーション,バッチアプリケーション,およびEJBクライアントアプリケーションから出力されたログは,日立トレース共通ライブラリを使用して,ほかのCosminexusシステムの構成ソフトウェアが出力する形式(日立トレース共通ライブラリ形式)で出力することができます。このライブラリを使用することで,ユーザログをほかのシステムのログと同じ形式で扱うことができ,高い信頼性を持つ統一的なログ運用ができます。
ユーザログ出力は,J2SEのJavaロギングの仕組みに従って出力します。Javaロギングでは,ロガーとハンドラという2種類の要素を使用します。なお,ロガーおよびハンドラは,それぞれ,LoggerクラスおよびHandlerクラスのオブジェクトです。
Javaロギングの仕組みを次の図に示します。
図12-2 Javaロギングの仕組み
図について説明します。
アプリケーションサーバでは,日立トレース共通ライブラリ形式でログをファイルに出力するためのファイルハンドラを提供しています。提供しているファイルハンドラについて,アプリケーションの種類ごとに説明します。
ファイルハンドラとして,CJMessageFileHandlerを提供しています。CJMessageFileHandlerのログの出力先ファイル,ログレベル,ログ面数,使用するフィルタおよびフォーマッタなどは,システム構築時に設定できます。J2EEアプリケーションまたはバッチアプリケーションのユーザログ出力の設定については,「12.8 J2EEアプリケーションのユーザログ出力の設定」および「12.9 バッチアプリケーションのユーザログ出力の設定」を参照してください。
また,ユーザログに,ログを出力したアプリケーションの名称やメッセージの内容と対応したメッセージIDを出力したい場合は,J2EEアプリケーションまたはバッチアプリケーション内で実装する必要があります。この場合は,Application Serverが提供する拡張LogRecord作成用のクラス(CJLogRecordクラス)を使用して実装してください。CJLogRecordクラスの使用方法については,「12.4 ユーザログ出力で使用するメソッド」を参照してください。また,CJLogRecordクラスのAPIについては,マニュアル「Cosminexus アプリケーションサーバ リファレンス API編」の「10. ユーザログ機能で使用するAPI」を参照してください。
ファイルハンドラとして,CJMPMessageFileHandlerを提供しています。なお,EJBクライアントアプリケーションの開始に使用するコマンドによって,EJBクライアントアプリケーションのユーザログの設定方法が異なります。EJBクライアントアプリケーションのユーザログ出力の設定については,「12.10 EJBクライアントアプリケーションのユーザログ出力の設定(cjclstartapコマンドを使用する場合)」または「12.11 EJBクライアントアプリケーションのユーザログ出力の実装と設定(vbjコマンドを使用する場合)」を参照してください。