クラスSystem.LoggerFinder
- 含まれているクラス:
System
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
- 関連 目:
-
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明getLocalizedLogger(String name, ResourceBundle bundle, Module module) 指定されたmoduleのLoggerのローカライズ可能なインスタンスを返します。abstract System.Logger与えられたmoduleのLoggerのインスタンスを返します。static System.LoggerFinderLoggerFinderインスタンスを返します。
-
コンストラクタの詳細
-
LoggerFinder
protected LoggerFinder()LoggerFinderの新しいインスタンスを作成します。- 実装上のノート:
- サービス・プロバイダのインスタンス化中にデッドロックまたはクラス・ロード・サイクルが発生するリスクを回避するために、
LoggerFinderサービス実装は、そのコンストラクタで重い初期化を実行しないことをお薦めします。
-
-
メソッドの詳細
-
getLogger
public abstract System.Logger getLogger(String name, Module module) 与えられたmoduleのLoggerのインスタンスを返します。- パラメータ:
name- ロガーの名前。module- ロガーがリクエストされているモジュール。- 戻り値:
- 指定されたモジュール内での使用に適した
logger。 - スロー:
NullPointerException-nameがnullまたはmoduleがnullの 合。
-
getLocalizedLogger
public System.Logger getLocalizedLogger(String name, ResourceBundle bundle, Module module) 指定されたmoduleのLoggerのローカライズ可能なインスタンスを返します。 返されたロガーは、提供されたリソース・バンドルをメッセージのローカリゼーションに使用します。- 実装要件:
- デフォルトでは、このメソッドは
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-nameがnullまたはmoduleがnullの 合。
-
getLoggerFinder
public static System.LoggerFinder getLoggerFinder()LoggerFinderインスタンスを返します。 Javaランタイ には、1つのシステ 全体のLoggerFinderインスタンスがあります。LoggerFinder実装が配置およびロードされる方法については、クラス仕様を参照してく さい。- 戻り値:
LoggerFinderインスタンス。
-