モジュール java.logging
パッケージ java.util.logging
Java 2プラットフォームのコア・ロギング機能のクラスおよびインタフェースを提供します。 ロギングAPIの主な目的は、顧客サイトでのソフトウェアの管理とサービスをサポートすることです。
ログを使用する主な4つの目的は次のとおりです。
- エンド・ユーザーとシステム管理者による問題の診断。 これは、リソースの不足、セキュリティ障害、および単純な設定エラーなど、ローカルで修復または追跡可能なよくある問題の簡潔なロギングから構成されます。
- フィールド・サービス・エンジニアによる問題の診断。 フィールド・サービス・エンジニアが使用するロギング情報は、システム管理者が必要とする情報よりも大幅に複雑かつ冗長なものとなる可能性があります。 通常、そのような情報を取得するには、特定サブシステム内での追加ロギングが必要となります。
- 開発組織による問題の診断。 フィールドで問題が発生した場合、場合によっては取得したロギング情報を元の開発チームに診断用として戻す必要があります。 このロギング情報は、極めて詳細でかなり難解なものになる可能性があります。 場合によってはこのような情報には特定のサブシステムの内部実行の詳細なトレースが含まれます。
- 開発者による問題の診断。 ロギングAPIは、開発中のアプリケーションのデバッグを支援する目的でも使用できます。 これにはおそらく、ターゲット・アプリケーションによって生成されるロギング情報や低レベル・ライブラリによって生成されるロギング情報が含まれます。 ただし、この使用方法はまったく妥当なものですが、ロギングAPIの目的は、開発環境内にすでに存在している可能性のある、通常のデバッグ・ツールやプロファイリング・ツールに取って代わることではありません。
このパッケージの主な要素は次のとおりです。
- Logger: アプリケーションがロギング呼出しを行う際に使用する主要エンティティです。 Loggerオブジェクトは、特定のシステム・コンポーネントやアプリケーション・コンポーネントのメッセージをロギングするために使用されます。
- LogRecord: これを使用して、ログ・フレームワークと個々のログ・ハンドラとの間のロギング要求を渡します。
- ハンドラ: メモリー、出力ストリーム、コンソール、ファイル、ソケットなど、さまざまな出力先にLogRecordオブジェクトをエクスポートします。 この目的のために、さまざまなHandlerサブクラスが存在しています。 追加のHandlerがサード・パーティで開発され、コア・プラットフォームに加えて提供される場合があります。
- Level: ログ出力を制御するために使用される標準ログ・レベルのセットを定義します。 プログラムはほかのレベルでの出力を無視して一部のレベルのログを出力するよう構成できます。
- Filter: ログ・レベルが提供する制御を超えた、ログ・データに対するきめ細かい制御を行います。 ロギングAPIがサポートする汎用フィルタ・メカニズムを使えば、アプリケーション・コードは、任意のフィルタを接続してロギングの出力を制御できます。
- Formatter:LogRecordオブジェクトのフォーマット処理のサポートを提供します。 このパッケージにはSimpleFormatter、XMLFormatterの2つのフォーマッタが含まれています。これらはそれぞれ、ログ・レコードをプレーン・テキスト、XMLでフォーマットするためのものです。 Handlerと同様に、追加のFormatterがサード・パーティで開発される場合があります。
ロギングAPIは、静的構成制御、動的構成制御の両方を提供します。 静的制御を使えば、フィールド・サービス・スタッフは、特定の構成を設定したあと、その新しいロギング設定を使ってアプリケーションを再起動することができます。 動的制御を使えば、現在実行中のプログラム内からロギング構成を更新できます。 また、このAPIでは、システムの機能領域ごとにロギングの有効/無効を切り替えることもできます。 たとえば、あるフィールド・サービス・エンジニアは、すべてのAWTイベントを追跡することには関心があっても、ソケット・イベントやメモリー管理にはまったく関心がない場合があるからです。
nullポインタ
一般に、javadoc内で特に記載のないかぎり、メソッドおよびコンストラクタは、null引数を渡されるとNullPointerExceptionをスローします。 このルールには大きな例外が1つあります。それは、Loggerクラスのロギング簡易メソッド(config、entering、exiting、fine、finer、finest、log、logp、logrb、severe、throwing、およびwarningメソッド)は、最初のLevel引数(存在する場合)を除くすべての引数でnull値を受け取る、ということです。
関連項目
制御フローの概要については、「Javaロギングの概要」を参照してください。
- 導入されたバージョン:
- 1.4
-
インタフェースのサマリー インタフェース 説明 Filter Filterは、ログ・レベルが提供する制御以上に、ログ対象をきめ細かく制御するために使用されます。LoggingMXBean 非推奨。 -
クラスのサマリー クラス 説明 ConsoleHandler このHandler
は、ログ・レコードをSystem.err
に発行します。ErrorManager ErrorManagerオブジェクトはHandlerに接続され、ロギング時にHandlerで発生するエラーを処理します。FileHandler 単純ファイルのロギングHandler
です。Formatter FormatterはLogRecordのフォーマット処理をサポートします。Handler Handler
オブジェクトは、Logger
からログ・メッセージを受け取り、それらをエクスポートします。Level Levelクラスは、ロギング出力の制御に使用可能な一連の標準ロギング・レベルを定義します。Logger Loggerオブジェクトは、特定のシステム・コンポーネントやアプリケーション・コンポーネントのメッセージをロギングするために使用されます。LoggingPermission SecurityManagerによって実行されるコードがLogger.setLevelなどのログ制御メソッドのいずれかを呼び出すときに、SecurityManagerがチェックするアクセス権です。LogManager Loggerとログ・サービスの共有状態のセットを管理するために使用される単一のグローバルLogManagerオブジェクトがあります。LogRecord LogRecordオブジェクトを使用して、ログのフレームワークと個々のログHandler間のロギングの要求を渡します。MemoryHandler メモリーの循環バッファの要求をバッファ処理するHandler
です。SimpleFormatter LogRecord
の簡単なサマリーを人が理解できる形式で出力します。SocketHandler 簡潔なネットワーク・ログHandler
です。StreamHandler ストリームに基づくログHandler
です。XMLFormatter LogRecordを標準XML形式でフォーマットします。
LoggingMXBean
はもはやplatform MXBean
でなく、PlatformLoggingMXBean
に置き換えられました。