Cosminexus 機能解説

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

18.3.7 ユーザ独自のフィルタ/フォーマッタ/ハンドラの使用方法

ここでは,ユーザが作成した独自のFilterクラス,FormatterクラスまたはHandlerクラスをユーザログ機能で利用するための使用方法について説明します。なお,ここでは,ユーザが作成したクラスをユーザ作成クラスといいます。

ユーザ作成クラスを作成することで,ログのフィルタリングや出力内容をフォーマットできます。ユーザ作成クラスとして,Filterクラス,FormatterクラスまたはHandlerクラスを作成し,ライブラリJARまたはコンテナ拡張ライブラリに含めて使用します。

ユーザ作成クラスをユーザログ機能で使用する方法には,次の2種類の方法があります。

それぞれの方法について説明します。

<この項の構成>
(1) ライブラリJARを利用する
(2) コンテナ拡張ライブラリを利用する

(1) ライブラリJARを利用する

ユーザ作成クラスであるFilterクラス,FormatterクラスまたはHandlerクラスを,アプリケーション上で作成してロガーに追加して利用する方法です。この場合は,次の処理が実行されます。

この場合のユーザ作成クラスは,J2SEのjava.util.loggingの仕様に従って作成してください。作成したクラスは,通常のユーザクラスと同じように,WAR,EJB-JARまたはインポート用ライブラリJARに含めて利用できます。

次に,ライブラリJARに含めて利用する場合のユーザ作成クラスの作成手順を示します。

  1. セキュリティポリシーファイル(server.policy)にセキュリティポリシーを設定します。
    セキュリティポリシーの設定については,「18.3.6 セキュリティポリシーの設定」,またはマニュアル「Cosminexus システム構築ガイド」を参照してください。
  2. 独自のHandlerクラス,Filterクラス,およびFormatterクラスを含めたインポート用のライブラリJARを作成します。
  3. サーバ管理コマンドを使用して,作成したライブラリJARのクラスをインポートするように指定します。
  4. アプリケーションのソースプログラム上で,独自クラスのインスタンスを生成します。
  5. 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クラスとフォーマッタ,フィルタの作成,接続などが実行されて,ログ構成を構築できます。

手順を示します。

  1. ユーザ作成クラスのFormatterクラス,FilterクラスおよびHandlerクラスを含めたJARファイル(コンテナ拡張ライブラリJAR)を作成します。
    ここでは,myloglib.jarとします。
  2. myloglib.jarを任意の場所に配置します。
    ここでは,次の場所に配置することを前提に説明しています。
    • Windowsの場合
      c:\mylib
    • UNIXの場合
      /usr/mylib
  3. 配置したライブラリへのクラスパスを指定します。
    例えば,J2EEサーバの場合は,usrconf.cfg(オプション定義ファイル)内に,次のように指定します。
    • Windowsの場合
      add.class.path=C:\mylib\myloglib.jar
    • UNIXの場合
      add.class.path=/usr/mylib/myloglib.jar
  4. usrconf.properties(ユーザプロパティファイル)のユーザログ機能用のプロパティキーに,パッケージ名称を含むフルクラス名を指定します。