Cosminexus 機能解説

[目次][用語][索引][前へ][次へ]

18.3.4 ロガーとハンドラの作成と設定

JavaロギングAPIを使用してユーザログ出力をするためには,ロガーとハンドラを作成して,必要な設定をします。ログ出力に必要なアプリケーション識別名(AppName)やメッセージID(MsgID)などのパラメタは,Cosminexusが提供するCJLogRecordクラスのcreateメソッドの引数に指定します。また,独自のクラスを作成することで,ログのフィルタリングや出力内容のフォーマットをカスタマイズすることもできます。

なお,ユーザログ出力をするには,ログの出力先や構成面数などのプロパティを,実行環境に設定する必要があります。実行環境でのユーザログの設定については,マニュアル「Cosminexus システム構築ガイド」を参照してください。

J2EEアプリケーションまたはバッチアプリケーションのユーザログを出力する場合のロガーとハンドラの作成および設定の概要について説明します。

なお,EJBクライアントアプリケーションのユーザログ出力については,「18.3.9 EJBクライアントアプリケーションのユーザログ出力」を参照してください。

<この項の構成>
(1) ロガーの作成と設定
(2) ハンドラの作成と設定
(3) ロガーおよびハンドラを作成・設定する場合の指針

(1) ロガーの作成と設定

ロガーは,ロガー名称を指定して作成します。作成時には,システム構築時に設定した内容が使用されます。

各アプリケーション内では,ロガー名称を指定して作成されたロガーを取得し,取得したロガーを使用してログを出力します。Loggerクラスのメソッドでは,ロガーの作成およびログ出力の指定ができます。指定したログは,LogRecordに変換され,ハンドラに渡されて,ログファイルまたはコンソールに出力されます。

このほか,ロガーでログを取捨選択するためのフィルタ,ログのレベル,ロガーで使用するハンドラについても,必要に応じて設定できます。

(2) ハンドラの作成と設定

ハンドラは,システム構築時に設定した内容に従って作成,設定されます。

CJMessageFileHandlerを使用する場合は,ハンドラ名称を変えることで,複数のファイルハンドラを作成できます。

CJMessageFileHandlerで作成したファイルハンドラには,次の項目が設定できます。

なお,一つのハンドラが出力するログのアプリケーション名およびメッセージIDが同じでかまわない場合には,CJMessageFileHandlerのプロパティとして設定できます。メッセージごとに出力するログのアプリケーション名とメッセージIDを変更したい場合は,アプリケーション内のログ出力処理ごとに,アプリケーション名およびメッセージIDを出力するようにCJLogRecordクラスを使用して実装してください。

(3) ロガーおよびハンドラを作成・設定する場合の指針

ロガーおよびハンドラを作成,設定する場合の指針を次に示します。

ロガーとハンドラの作成例を次の図に示します。

図18-6 ロガーとハンドラの作成例

[図データ]

この例では,J2EEアプリケーション1と2に対して,com.example.userlogger1とcom.example.userlogger2という2種類のロガーを作成しています。com.example.userlogger1からは,ログの出力レベルおよび出力内容に応じて2種類のログファイルを出力するために,conf1とconf2という2種類のCJMessageFileHandlerハンドラを作成しています。このような構成にすると,ログファイル1にはSEVEREレベル以上の重要なユーザログを,ログファイル2にはINFOレベル以上のすべてのユーザログを出力するという運用ができます。一方,com.example.userlogger2からは1種類のログファイルだけを出力します。この場合は,J2EEアプリケーションから指定されたログのうち,com.example.userlogger2のロガーとハンドラconf3に指定したレベル以下のユーザログは,すべてログファイル3に出力されます。なお,コンソールにログを出力したい場合は,J2SEの標準のハンドラであるConsoleHandlerを使用してください。

それぞれのログファイルのサイズおよび面数は,アプリケーションが出力するユーザログの量や指定した出力レベルに応じて,適切に設定してください。