Jakarta Commons Logging
Jakarta Commons Logging は、単一のロギング・インターフェースおよび複数のロギング・システムのシン・ラッパーを提供します。ロギング・インターフェースは、アプリケーション・ロギングが、 単純になり、さらにアプリケーションが使用するロギング・システムから独立できるようにします。 アプリケーション・ロギング・コードを変更しなくても、デプロイ済みアプリケーションのロギング実装を 変更することができます。ただし、ロギング・インターフェースを単純にすると、 アプリケーションは、ロギング・システムのすべての機能を利用しなくてもよくなります。
WebSphere® Application Server での Jakarta Commons Logging については、以下のセクションを参照してください。
- Jakarta Commons Logging のサポート
- Jakarta Commons Logging のサポートの利点
- Jakarta Commons Logging を使用するプロセスの概要
- ロガー・ファクトリーおよびロガーを取得するために使用されるクラス
- ロガーのレベル構成とマッピング
Jakarta Commons Logging のサポート
製品は、 WebSphere Application Serverロギング機能用のシン・ラッパーであるロガーを提供することによって、Jakarta Commons Logging をサポートします。ロガーは、Java ロギング (JSR-47) と Common Base Event ロギング・オブジェクトの両方を処理することができます。ロギング・オブジェクトは、ロギング項目情報を持つオブジェクトです。
製品による Jakarta Commons Logging のサポートのため、Jakarta Commons Logging で定義されている インターフェースに変更はありません。
Jakarta Commons Logging のサポートの利点
Jakarta Commons Logging の WebSphere Application Server サポートには、以下の利点があります。
- WebSphere Application Server は、Jakarta Commons
Logging を使用するように事前構成されています。
Jakarta Commons Logging のすべての機能は、任意のアプリケーションまたは WebSphere Application Server コンポーネントに提供されます。 ロギング呼び出しは、デフォルトで、基盤となる WebSphere Application Server ロギ ング機能にルーティングされています。
- WebSphere Application Server ロギング機能を使用するロガー。
アプリケーションおよびコンポーネントは、Java ロギングと Common Base Event ロギング・オブジェクトの両方を、ストリングへ変換することなく、WebSphere Application Server ロガーへ渡し、アプリケーションのロギングを拡張することができます。 さらに、Jakarta Commons Logging のロガー・レベルは、WebSphere Application Server 管理機能に統合されます。
Jakarta Commons Logging を使用するプロセスの概要
Jakarta Commons Logging を使用したロギングは、以下のステップで構成されます。WebSphere Application Server ロガーの構成は、WebSphere Application Server ロガーを使用するように、アプリケーションを構成する際の詳細を提供します。
- ロガー・ファクトリーのインスタンスを取得します。
ロガー・ファクトリーの取得には、Jakarta Commons Logging コードを使用します。ユーザーのニーズに合うコードを構成することができます。WebSphere Application Server では、Jakarta Commons Logging は、Jakarta Commons Logging のデフォルトのロガー・ファクトリーのインスタンスを生成するように、デフォルトで構成されます。アプリケーションまたは WebSphere Application Server コンポーネントは、異なるロガー・ファクトリーの実装を使用する場合、コンポーネント自体の構成を用意することが可能です。 アプリケーションは、複数のファクトリーを使用することができます。
- ロガーのインスタンスを取得します。
ロガーを取得するには、ロガー・ファクトリーによって実装された コードを使用します。このコードの構成は、実装に固有のものです。
WebSphere Application Server ロガーは、ロギング・インターフェースで定義されたメソッド を実装します。 ロギング・メソッドは少なくとも 1 つの引数を取り、これは任意の Java オブジェクトとすることができます。 WebSphere Application Server ロガー (ロガー・ファクトリーおよびロガーを取得するために使用されるクラスで説明されている WsJDK14Logger ロガー) は、以下のロギング・メソッドへ渡される以下のオブジェクトを処理します。
- CommonBaseEvent
- CommonBaseEventLogRecord へラップされる
- CommonBaseEventLogRecord
- 変更なしで渡される
- LogRecord
- 変更なしで渡される
- 他のオブジェクト
- ストリングに変換される
アプリケーションまたは WebSphere Application Server コンポー ネントは、WebSphere Application Server に固有ではないロガーの実装を使用 する場合、独自の構成を提供することができます。アプリケーションは、構成に使用されているファクトリーが 何であるかを認識しておく必要があります。
- アプリケーションを開始します。Jakarta Commons Logging は、アプリケーションのロギング出力を、 指定されたロガーへルーティングします。
ロガー・ファクトリーおよびロガーを取得するために使用されるクラス
クラス名 | 説明 |
---|---|
LogFactory | LogFactory は、初期化ロジックを実装する Jakarta Commons Logging クラスです。LogFactory は、すべてのロガー・ファクトリー実装が拡張する必要のある抽象クラスです。LogFactory では、以下の取得のために静的メソッドが提供されています。
ロガー・ファクトリーは、一度インスタンス化されると、コンテキスト・クラス・ローダーごとにキャッシュされます。キャッシュ内のインスタンスは、解放することができます。 この機能は、アプリケーション用ではなく、プラットフォームのコンテナー実装用に設計されます。 |
LogFactoryImpl | LogFactoryImpl は、デフォルトのロガー・ファクトリーを LogFactory でのメソッドを使用して実装する Jakarta Commons Logging 具象クラスです。 Java ロギングを使用するには、(アプリケーションが明示的にロガー・ファクトリー・クラスのインスタンスを取得していない場合でも)、 最低でも、常に 1 つのロガー・ファクトリー・クラスのインスタンスが必要です。構成がロガー・ファクトリー・クラスを指定しない場合は、LogFactoryImpl がデフォルトとして使用されます。 |
Log | Log は、ロガーの Jakarta Commons Logging インターフェースです。
共通ロギング・ロガーは、Log インターフェースを実装する必要があります。
Jakarta Commons Logging の目標はすべてのロギング・システムをラッパーすることなので、
Log インターフェースは共通ロギング・メソッドの小さなセットを定義します。WebSphere Application Server では、
WsJDK14Logger が Log インターフェースを実装します。 ロガーのインスタンス化 および構成は、すべてのロガー・ファクトリーに固有です。WebSphere Application Server でのロギングは、Jakarta Commons Logging で提供されるデフォルトのロガー・ファクトリーを使用します。これにより、インスタンス化された ロガーは、コンテキストのクラス・ローダーごとに、キャッシュに保持されます。 |
WsJDK14Logger | WsJDK14Logger は、Log インターフェースを実装することによって、 Jakarta Commons Logging ロガーを提供する WebSphere Application Server クラスです。 WsJDK14Logger ロガーは、Java Logging ロガーとは異なります。WsJDK14Logger ロガーは、Java Logging または Common Base Event オブジェクトを、ストリング・オブジェクトに変換しないで渡すことを可能にします。 これにより、 ストリングへの変換によって発生する可能性のある情報の損失を回避し、ロギング出力を より記述的で明確にすることができます。一方、Jakarta Commons Logging で提供される Java Logginglogger は、 ロギング呼び出しに渡されるオブジェクトを、基盤となる Java Logging に渡す前に、ストリング・オブジェクトに変換します。 |
ロガーのレベル構成とマッピング
Jakarta Commons Logging ロガーは、特定のロギング・システムのシン・ラッパーであるため、 ロガーは独自のレベルを持っていませんが、基盤となるロギング・システムからのロガーのレベルを使用します。 基盤となるシステムは、レベルを変更するためのメソッドを提供することができますが、 Log インターフェースで定義されたレベルを変更するためのメソッドはありません。 これは、すべての Jakarta Commons Logging ロガーが実装する必要があります。 WsJDK14Logger は、基盤となる Java Logging ロガーのレベルを使用します。
以下の表に、WsJDK14Logger 内の Jakarta Commons Logging のレベルと、Java Logging の WebSphere Application Server 実装のレベルとのマッピングを示します。 先頭の列は、Java Logging で定義されたレベル、および Jakarta Commons Logging JDK14Logger での Java Logging レベルへのレベル・マッピングを示しています。
WsJDK14Logger | WebSphere Application Server の Java Logging | Java Logging | JDK14Logger |
---|---|---|---|
Fatal | Fatal | ||
Error | 重大 | 重大 | Fatal、Error |
警告 | 警告 | 警告 | 警告 |
Audit | |||
Info | Info | Info | Info |
構成 | 構成 | ||
Detail | |||
デバッグ | Fine | Fine | デバッグ |
Finer | Finer | ||
トレース | Finest | Finest | トレース |
WsJDK14Logger レベルは、基盤となる Java Logging ロガー・レベルで同期化されます。WebSphere Application Server 管理は、WsJDK14Logger レベルを制御します。