Cosminexus 機能解説
18.3.7 ユーザ独自のフィルタ/フォーマッタ/ハンドラの使用方法
ここでは,ユーザが作成した独自のFilterクラス,FormatterクラスまたはHandlerクラスをユーザログ機能で利用するための使用方法について説明します。なお,ここでは,ユーザが作成したクラスをユーザ作成クラスといいます。
ユーザ作成クラスを作成することで,ログのフィルタリングや出力内容をフォーマットできます。ユーザ作成クラスとして,Filterクラス,FormatterクラスまたはHandlerクラスを作成し,ライブラリJARまたはコンテナ拡張ライブラリに含めて使用します。
ユーザ作成クラスをユーザログ機能で使用する方法には,次の2種類の方法があります。
- ライブラリJARを利用する
J2EEアプリケーションの場合に使用できる方法です。バッチアプリケーションの場合は使用できません。
- コンテナ拡張ライブラリを利用する
J2EEアプリケーションまたはバッチアプリケーションで使用できる方法です。
それぞれの方法について説明します。
- <この項の構成>
- (1) ライブラリJARを利用する
- (2) コンテナ拡張ライブラリを利用する
(1) ライブラリJARを利用する
ユーザ作成クラスであるFilterクラス,FormatterクラスまたはHandlerクラスを,アプリケーション上で作成してロガーに追加して利用する方法です。この場合は,次の処理が実行されます。
- まず,アプリケーションの中でHandlerクラスをインスタンス化します。
- 次に,FilterクラスやFormatterクラスをインスタンス化したものをHandlerクラスのインスタンスに接続します。
- 最後に,接続したHandlerクラスのインスタンスを,ロガーに追加します。
この場合のユーザ作成クラスは,J2SEのjava.util.loggingの仕様に従って作成してください。作成したクラスは,通常のユーザクラスと同じように,WAR,EJB-JARまたはインポート用ライブラリJARに含めて利用できます。
次に,ライブラリJARに含めて利用する場合のユーザ作成クラスの作成手順を示します。
- セキュリティポリシーファイル(server.policy)にセキュリティポリシーを設定します。
セキュリティポリシーの設定については,「18.3.6 セキュリティポリシーの設定」,またはマニュアル「Cosminexus システム構築ガイド」を参照してください。
- 独自のHandlerクラス,Filterクラス,およびFormatterクラスを含めたインポート用のライブラリJARを作成します。
- サーバ管理コマンドを使用して,作成したライブラリJARのクラスをインポートするように指定します。
- アプリケーションのソースプログラム上で,独自クラスのインスタンスを生成します。
- Loggerクラス,Handlerクラスへ接続する処理を実装します。
J2SE1.4仕様のログマネジャ(LogManager)を利用して実装する場合は,次の点に注意してください。
- プロパティ(java.util.logging.classやjava.util.logging.fileなど)を使用して,ログマネジャをカスタマイズすることはできません。カスタマイズした場合,ユーザログの構築に失敗するおそれがあります。
- ソースプログラム上でログマネジャのreadConfiguration(InputStream ins)メソッドなどを呼び出すことはできません。readConfiguration(InputStream ins)メソッドを呼び出して,Loggerクラスの構成を初期化した場合,ユーザログ機能によって構築されたログ体系が失われます。
なお,コーディング上の注意事項については,「18.3.8 ユーザログ機能を使用する場合の注意事項」を参照してください。
(2) コンテナ拡張ライブラリを利用する
ユーザ作成クラスであるFilterクラス,FormatterクラスまたはHandlerクラスのクラス名称をユーザログ機能のプロパティキーに指定しておき,J2EEサーバ起動時にユーザ作成クラスを含むログ構成を構築して利用する方法です。J2EE標準の方法とは異なります。
ユーザ作成クラスを含めたJARファイルをコンテナ拡張ライブラリとして指定して,作成したライブラリへのクラスパスを指定します。これによって,J2EEサーバ起動時に,プロパティキーで指定しているCJMessageFileHandlerクラスとフォーマッタ,フィルタの作成,接続などが実行されて,ログ構成を構築できます。
手順を示します。
- ユーザ作成クラスのFormatterクラス,FilterクラスおよびHandlerクラスを含めたJARファイル(コンテナ拡張ライブラリJAR)を作成します。
ここでは,myloglib.jarとします。
- myloglib.jarを任意の場所に配置します。
ここでは,次の場所に配置することを前提に説明しています。
- Windowsの場合
c:\mylib
- UNIXの場合
/usr/mylib
- 配置したライブラリへのクラスパスを指定します。
例えば,J2EEサーバの場合は,usrconf.cfg(オプション定義ファイル)内に,次のように指定します。
- Windowsの場合
add.class.path=C:\mylib\myloglib.jar
- UNIXの場合
add.class.path=/usr/mylib/myloglib.jar
- usrconf.properties(ユーザプロパティファイル)のユーザログ機能用のプロパティキーに,パッケージ名称を含むフルクラス名を指定します。
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.