クラスSystem.LoggerFinder

java.lang.Object
java.lang.System.LoggerFinder
含まれているクラス:
System

public abstract static class System.LoggerFinder extends Object
LoggerFinderサービスは、使用する基礎となるフレームワークに対するロガーの作成、管理および構成を担当します。 ロガー・ファインダは、ゼロ引数のコンストラクタを持ち、このクラスで定義された抽象メソッドを実装する、このクラスの具体的な実装です。 ロガー・ファインダから返されたロガーは、このプロバイダがサポートするロギング・バックエンドにログ・メッセージをルーティングできます。 Java Runtimeの呼び出しによって、次のようにロードされる単一のシステム全体のLoggerFinderインスタンスが維持されます:
  • 最初に、「システム・クラス・ローダー」を使用してServiceLoader機能を使用してカスタムLoggerFinderプロバイダを検索します。
  • LoggerFinderプロバイダが見つからない場合は、システムのデフォルトのLoggerFinder実装が使用されます。

アプリケーションは、System.LoggerFinderサービスの実装を指定および宣言するだけで、ロギング・バックエンド「java.loggingモジュールが存在する場合でも」を置き換えることができます。

デフォルトの実装

java.loggingモジュールが存在する場合、システム・デフォルトのLoggerFinder実装では、バックエンド・フレームワークとしてjava.util.loggingが使用されます。 ログ・メッセージをjava.util.logging.Loggerにルーティングするloggerインスタンスを返します。 それ以外の場合、java.loggingが存在しない場合、デフォルトの実装は、INFOレベル以上のログ・メッセージをコンソール(System.err)にルーティングする単純なロガー・インスタンスを返します。

ロギング構成

LoggerFinderファクトリ・メソッドから取得したLoggerインスタンスは、アプリケーションによって直接構成できません。 構成は基礎となるロギング・バックエンドの責任であり、通常は、そのバックエンドに固有のAPIを使用する必要があります。

バックエンドとしてjava.util.loggingを使用するデフォルトのLoggerFinder実装については、ロギング構成についてはjava.util.loggingを参照してください。 java.loggingモジュールが存在しないときに単純なロガーを返すデフォルトのLoggerFinder実装の場合、構成は実装に依存します。

通常、ロギング・フレームワークを使用するアプリケーションは、そのフレームワークによって定義された(またはサポートされている)というロガー・ファサードを介してメッセージをログに記録します。 外部フレームワークを使用するアプリケーションは、そのフレームワークに関連付けられているファサードを介してログに記録する必要があります。

メッセージをログに記録する必要があるシステム・クラスは、通常、アプリケーションで選択されたロギング・フレームワークにメッセージをルーティングするためにSystem.Loggerインスタンスを取得します。

ログ・メッセージを生成するためにロガーのみが必要なライブラリおよびクラスは、LoggerFinderサービスの特定の実装に依存するため、ロガーを単独で構成しようとしないでください。

メッセージレベルとバックエンド・レベルへのマッピング

ロガー・ファインダは、 System.Logger.Levelから、それが使用するロギング・バックエンドでサポートされているレベルへのマッピングを担当します。
バックエンドとしてjava.util.loggingを使用するデフォルトのLoggerFinderは、System.Loggerレベルを対応する重大度のjava.util.loggingレベルにマップ - Logger.Levelを参照してください。

導入されたバージョン:
9
関連項目:
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    LoggerFinderの新しいインスタンスを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    指定されたmoduleLoggerのローカライズ可能なインスタンスを返します。
    abstract System.Logger
    getLogger(String name, Module module)
    与えられたmoduleLoggerのインスタンスを返します。
    LoggerFinderインスタンスを返します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • LoggerFinder

      protected LoggerFinder()
      LoggerFinderの新しいインスタンスを作成します。
      実装上のノート:
      サービス・プロバイダのインスタンス化中にデッドロックまたはクラス・ロード・サイクルが発生するリスクを回避するために、LoggerFinderサービス実装は、そのコンストラクタで重い初期化を実行しないことをお薦めします。
  • メソッドの詳細

    • getLogger

      public abstract System.Logger getLogger(String name, Module module)
      与えられたmoduleLoggerのインスタンスを返します。
      パラメータ:
      name - ロガーの名前。
      module - ロガーがリクエストされているモジュール。
      戻り値:
      指定されたモジュール内での使用に適したlogger
      スロー:
      NullPointerException - namenullまたはmodulenullの場合。
    • getLocalizedLogger

      public System.Logger getLocalizedLogger(String name, ResourceBundle bundle, Module module)
      指定されたmoduleLoggerのローカライズ可能なインスタンスを返します。 返されたロガーは、提供されたリソース・バンドルをメッセージのローカリゼーションに使用します。
      実装要件:
      デフォルトでは、このメソッドはthis.getLogger(name, module)をコールしてロガーを取得し、そのロガーをSystem.Loggerインスタンスにラップします。このインスタンスでは、パラメータとしてResourceBundleを取得しないすべてのメソッドが、次のメソッドにリダイレクトされます - ローカライズ用に指定されたbundleを渡します。 したがって、たとえば、Logger.log(Level.INFO, msg)へのコールは、ラップされたロガー・インスタンスでLogger.log(Level.INFO, bundle, msg, (Object[])null)へのコールとして終了します。 ただし、デフォルトでは、Supplier<String>によって返される文字列メッセージはローカライズされません。このような文字列は、リソース・バンドル内のキーではなく、すでに構築されたメッセージであると想定されるためです。

      LoggerFinderの実装は、このメソッドをオーバーライドできます。たとえば、基礎となるロギング・バックエンドがログ・メッセージをローカライズするための独自のメカニズムを提供する場合、そのようなLoggerFinderは、バックエンドによって提供されるメカニズムを直接利用するロガーを自由に返すことができます。

      パラメータ:
      name - ロガーの名前。
      bundle - リソース・バンドル。nullにすることができます。
      module - ロガーがリクエストされているモジュール。
      戻り値:
      指定されたリソース・バンドルをメッセージのローカリゼーションに使用するLoggerのインスタンス。
      スロー:
      NullPointerException - namenullまたはmodulenullの場合。
    • getLoggerFinder

      public static System.LoggerFinder getLoggerFinder()
      LoggerFinderインスタンスを返します。 Javaランタイムには、1つのシステム全体のLoggerFinderインスタンスがあります。 LoggerFinder実装が配置およびロードされる方法については、クラス仕様を参照してください。
      戻り値:
      LoggerFinderインスタンス。