モジュール java.logging

パッケージ java.util.logging

Java™ 2プラットフォームのコア・ロギング機能のクラスとインタフェースを提供します。 ロギングAPIの主な目的は、顧客サイトでのソフトウェアの管理とサービスをサポートすることです。

ログを使用する主な4つの目的は次のとおりです。

  1. エンド・ユーザーとシステム管理者による問題の診断 これは、リソースの不足、セキュリティ障害、および単純な設定エラーなど、ローカルで修復または追跡可能なよくある問題の簡潔なロギングから構成されます。
  2. フィールド・サービス・エンジニアによる問題の診断 フィールド・サービス・エンジニアが使用するロギング情報は、システム管理者が必要とする情報よりも大幅に複雑かつ冗長なものとなる可能性があります。 通常、そのような情報を取得するには、特定サブシステム内での追加ロギングが必要となります。
  3. 開発組織による問題の診断 フィールドで問題が発生した場合、場合によっては取得したロギング情報を元の開発チームに診断用として戻す必要があります。 このロギング情報は、極めて詳細でかなり難解なものになる可能性があります。 場合によってはこのような情報には特定のサブシステムの内部実行の詳細なトレースが含まれます。
  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