Logger クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
Logger オブジェクトは、特定のシステムまたはアプリケーション コンポーネントのメッセージをログに記録するために使用されます。
[Android.Runtime.Register("java/util/logging/Logger", DoNotGenerateAcw=true)]
public class Logger : Java.Lang.Object
[<Android.Runtime.Register("java/util/logging/Logger", DoNotGenerateAcw=true)>]
type Logger = class
inherit Object
- 継承
- 属性
注釈
Logger オブジェクトは、特定のシステムまたはアプリケーション コンポーネントのメッセージをログに記録するために使用されます。 ロガーには通常、ドット区切りの階層型名前空間を使用して名前が付けられます。 ロガー名は任意の文字列にすることができますが、通常は、java.net や javax.swing など、ログに記録されたコンポーネントのパッケージ名またはクラス名に基づく必要があります。 さらに、Logger 名前空間に格納されていない "匿名" ロガーを作成することもできます。
ロガー オブジェクトは、getLogger ファクトリ メソッドの呼び出しによって取得できます。 これらは、新しいロガーを作成するか、適切な既存のロガーを返します。 ロガーへの厳密な参照が保持されていない場合、ファクトリ メソッドの getLogger
1 つによって返されるロガーは、いつでもガベージ コレクションされる可能性があることに注意してください。
ログ メッセージは登録済みの Handler オブジェクトに転送されます。これにより、コンソール、ファイル、OS ログなど、さまざまな宛先にメッセージを転送できます。
各ロガーは、Logger 名前空間の最も近い既存の先祖である "親" ロガーを追跡します。
各ロガーには、"レベル" が関連付けられています。 これは、このロガーが気にする最小レベルを反映しています。 ロガーのレベルが に null
設定されている場合、その有効なレベルは親から継承され、その親から再帰的に取得される可能性があります。ツリー上などです。
ログ レベルは、LogManager クラスの説明で説明されているように、ログ構成ファイルのプロパティに基づいて構成できます。 ただし、Logger.setLevel メソッドの呼び出しによって動的に変更される場合もあります。 ロガーのレベルが変更された場合、そのレベルとして を持つ子ロガーは null
親から有効なレベルを継承するため、変更は子ロガーにも影響する可能性があります。
各ログの呼び出しで、ロガーは最初に、ロガーの有効なログ レベルに対して要求レベル (たとえば、SEVERE や FINE) の安価なチェックを実行します。 要求レベルがログ レベルより低い場合、ログ呼び出しはすぐに返されます。
この初期 (安価) テストに合格すると、ロガーはログ メッセージを記述するために LogRecord を割り当てます。 その後、Filter (存在する場合) を呼び出して、レコードを発行する必要があるかどうかに関するより詳細なチェックを実行します。 それが渡された場合は、LogRecord を出力ハンドラーに発行します。 既定では、ロガーは親のハンドラーにも発行し、ツリーを再帰的に上げます。
各ロガーには、 が ResourceBundle
関連付けられている場合があります。 は ResourceBundle
、名前、ファクトリ メソッド、または値 ( メソッドを #getLogger(java.lang.String, java.lang.String)
使用) #setResourceBundle(java.util.ResourceBundle) setResourceBundle
で指定できます。 このバンドルは、ログ メッセージのローカライズに使用されます。 ロガーに独自 ResourceBundle
のまたはリソース バンドル名がない場合は、親から または リソース バンドル名を継承し、ツリーを再帰的に上に継承 ResourceBundle
します。
ほとんどのロガー出力メソッドは、"msg" 引数を受け取ります。 この msg 引数には、生の値またはローカライズ キーを指定できます。 書式設定中に、ロガーにローカライズ ResourceBundle
がある (または継承される) 場合、 に msg 文字列のマッピングがある場合 ResourceBundle
、msg 文字列はローカライズされた値に置き換えられます。 それ以外の場合は、元の msg 文字列が使用されます。 通常、フォーマッタは java.text.MessageFormat スタイルの書式設定を使用してパラメーターを書式設定するため、書式指定文字列 "{0}{1}" では 2 つのパラメーターが文字列として書式設定されます。
一連のメソッドは、"msg" 引数の代わりに "msgSupplier" を受け取ります。 これらのメソッドは、有効な Supplier
<String>
ログ レベルに基づいてメッセージを実際にログに記録する場合にのみ、目的のログ メッセージを構築するために呼び出される関数を受け取ります。これにより、不要なメッセージの作成が不要になります。 たとえば、開発者が診断のためにシステムの正常性状態をログに記録し、文字列を受け入れるバージョンを使用する場合、コードは次のようになります。
<code>
class DiagnosisMessages {
static String systemHealthStatus() {
// collect system health information
...
}
}
...
logger.log(Level.FINER, DiagnosisMessages.systemHealthStatus());
</code>
上記のコードでは、ログ レベル FINER が無効になっている場合でも、正常性状態が不必要に収集されます。 以下のような仕入先受け入れバージョンでは、ログ レベル FINER が有効になっている場合にのみ状態が収集されます。
<code>
logger.log(Level.FINER, DiagnosisMessages::systemHealthStatus);
</code>
を探 ResourceBundle
すとき、ロガーは最初に を使用してバンドルが指定されたかどうかを調べます。次に、ファクトリ メソッドを使用 #setResourceBundle(java.util.ResourceBundle) setResourceBundle
して #getLogger(java.lang.String, java.lang.String) getLogger
リソース バンドル名が指定されたかどうかのみが確認されます。 リソース バンドル名が見つからないResourceBundle
場合、またはリソース バンドル名が見つからない場合は、親ツリーから継承された最も近いResourceBundle
またはリソース バンドル名が使用されます。<br> メソッドを介して #setResourceBundle(java.util.ResourceBundle) setResourceBundle
をResourceBundle
継承または指定した場合、それがResourceBundle
使用されます。 それ以外の場合、ロガーにリソース バンドル名のみが含まれるか継承されている場合、そのリソース バンドル名は、ログ記録時に ResourceBundle
既定のロケールを使用してオブジェクトにマップされます。 <br id="ResourceBundleMapping">リソース バンドル名をオブジェクトに ResourceBundle
マッピングする場合、ロガーは最初に Thread の java.lang.Thread#getContextClassLoader() コンテキスト クラス ローダーを使用して、指定されたリソース バンドル名を に ResourceBundle
マップしようとします。 スレッド コンテキスト クラス ローダーが の場合は null
、代わりに java.lang.ClassLoader#getSystemClassLoader() システム クラス ローダーを試します。 ResourceBundle
が見つからない場合は、ファクトリ メソッドの最初の呼び出し元のクラス ローダーを#getLogger(java.lang.String, java.lang.String) getLogger
使用します。
書式設定 (ローカライズを含む) は、通常フォーマッタを呼び出す出力ハンドラーの役割です。
書式設定は同期的に行う必要はありません。 LogRecord が実際に外部シンクに書き込まれるまで遅延する可能性があります。
ログ方法は、次><の 5 つのメインカテゴリにグループ化されています。 <>
ログ レベル、メッセージ文字列、および必要に応じてメッセージ文字列にいくつかのパラメーターを受け取る一連の "ログ" メソッドがあります。 <李>
"log" メソッドに似ていますが、明示的なソース クラス名とメソッド名も受け取る一連の "logp" メソッド ("log precise") があります。 <李>
"logp" メソッドに似ている一連の "logrb" メソッド ("リソース バンドルを含むログ" の場合) がありますが、ログ メッセージのローカライズに使用するために明示的なリソース バンドル オブジェクトも受け取ります。 <李>
メソッド エントリ ("entering" メソッド)、メソッドの戻り値 ("終了" メソッド)、および例外のスロー ("スロー" メソッド) には便利なメソッドがあります。 <李>
最後に、開発者が特定のログ レベルで単純な文字列をログに記録したい場合に、非常に単純なケースで使用するための便利な一連のメソッドがあります。 これらのメソッドは、標準の Level 名 ("severe"、"warning"、"info"など) に名前が付けられ、1 つの引数であるメッセージ文字列を受け取ります。 </ul>
明示的なソース名とメソッド名を受け取らないメソッドの場合、ログ 記録フレームワークは、ログ メソッドに呼び出されるクラスとメソッドを決定するための "ベスト エフォート" を行います。 ただし、この自動的に推論される情報はおおよその情報である (またはまったく間違っている可能性もある) ことに注意することが重要です。 仮想マシンは、JITing 時に広範な最適化を実行でき、スタック フレームが完全に削除される可能性があるため、呼び出し元のクラスとメソッドを確実に見つけることができなくなります。
Logger のすべてのメソッドは、マルチスレッド セーフです。
<b>サブクラス化情報:</b> LogManager クラスは、名前空間内の任意のポイントに対して名前付きロガーの独自の実装を提供する場合があることに注意してください。 したがって、Logger のサブクラス (新しい LogManager クラスと組み合わせて実装されている場合を除く) は、LogManager クラスから Logger インスタンスを取得するように注意する必要があり、"isLoggable" や "log(LogRecord)" などの操作をそのインスタンスに委任する必要があります。 すべてのログ出力をインターセプトするために、サブクラスは log(LogRecord) メソッドをオーバーライドするだけで済みます。 他のすべてのログ メソッドは、この log(LogRecord) メソッドの呼び出しとして実装されます。
1.4 で追加されました。
の Java ドキュメント java.util.logging.Logger
。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
Logger(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
Logger(String, String) |
名前付きサブシステムのロガーを構築するための保護されたメソッド。 |
フィールド
GlobalLoggerName |
GLOBAL_LOGGER_NAMEはグローバル ロガーの名前です。 |
プロパティ
AnonymousLogger |
匿名ロガーを作成します。 |
Class |
この |
Filter |
このロガーの現在のフィルターを取得します。 または、このロガーの出力を制御するフィルターを設定します。 |
Global |
Logger という名前のグローバル ロガー オブジェクトを返します。 |
Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
JniIdentityHashCode |
Logger オブジェクトは、特定のシステムまたはアプリケーション コンポーネントのメッセージをログに記録するために使用されます。 (継承元 Object) |
JniPeerMembers |
Logger オブジェクトは、特定のシステムまたはアプリケーション コンポーネントのメッセージをログに記録するために使用されます。 |
Level |
このロガーに指定されているログ レベルを取得します。 または、このロガーによってログに記録されるメッセージ レベルを指定するログ レベルを設定します。 |
Name |
このロガーの名前を取得します。 |
Parent |
このロガーの親を返します。 または、このロガーの親を設定します。 |
PeerReference |
Logger オブジェクトは、特定のシステムまたはアプリケーション コンポーネントのメッセージをログに記録するために使用されます。 (継承元 Object) |
ResourceBundle |
このロガーのローカライズ リソース バンドルを取得します。 または、このロガーにリソース バンドルを設定します。 |
ResourceBundleName |
このロガーのローカライズ リソース バンドル名を取得します。 |
ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。 |
ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。 |
UseParentHandlers |
このロガーが出力を親ロガーに送信しているかどうかを検出します。 または、このロガーが出力を親ロガーに送信するかどうかを指定します。 |
メソッド
AddHandler(Handler) |
ログ メッセージを受信するログ ハンドラーを追加します。 |
Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 Object) |
Config(ISupplier) |
CONFIG メッセージをログに記録します。これは、メッセージが実際にログに記録されるようにログ レベルが設定されている場合にのみ作成されます。 |
Config(String) |
CONFIG メッセージをログに記録します。 |
Dispose() |
Logger オブジェクトは、特定のシステムまたはアプリケーション コンポーネントのメッセージをログに記録するために使用されます。 (継承元 Object) |
Dispose(Boolean) |
Logger オブジェクトは、特定のシステムまたはアプリケーション コンポーネントのメッセージをログに記録するために使用されます。 (継承元 Object) |
Entering(String, String) |
メソッド エントリをログに記録します。 |
Entering(String, String, Object) |
メソッド エントリを 1 つのパラメーターでログに記録します。 |
Entering(String, String, Object[]) |
パラメーターの配列を使用して、メソッドエントリをログに記録します。 |
Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
Exiting(String, String) |
メソッドの戻り値をログに記録します。 |
Exiting(String, String, Object) |
結果オブジェクトを使用して、メソッドの戻り値をログに記録します。 |
Fine(ISupplier) |
FINE メッセージをログに記録します。これは、メッセージが実際にログに記録されるようにログ レベルが設定されている場合にのみ作成されます。 |
Fine(String) |
FINE メッセージをログに記録します。 |
Finer(ISupplier) |
FINER メッセージをログに記録します。これは、メッセージが実際にログに記録されるようにログ レベルが設定されている場合にのみ作成されます。 |
Finer(String) |
FINER メッセージをログに記録します。 |
Finest(ISupplier) |
FINEST メッセージをログに記録します。これは、メッセージが実際にログに記録されるようにログ レベルが設定されている場合にのみ作成されます。 |
Finest(String) |
最も優れたメッセージをログに記録します。 |
GetAnonymousLogger(String) |
匿名ロガーを作成します。 |
GetHandlers() |
このロガーに関連付けられているハンドラーを取得します。 |
GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
GetLogger(String) |
名前付きサブシステムのロガーを検索または作成します。 |
GetLogger(String, String) |
名前付きサブシステムのロガーを検索または作成します。 |
Info(ISupplier) |
INFO メッセージをログに記録します。これは、ログ レベルがメッセージが実際にログに記録される場合にのみ作成されます。 |
Info(String) |
INFO メッセージをログに記録します。 |
IsLoggable(Level) |
指定されたレベルのメッセージがこのロガーによって実際にログに記録されるかどうかを確認します。 |
JavaFinalize() |
ガベージ コレクションがオブジェクトへの参照がなくなったと判断したときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
Log(Level, ISupplier) |
メッセージをログに記録します。これは、メッセージが実際にログに記録されるようにログ レベルが設定されている場合にのみ作成されます。 |
Log(Level, String) |
引数なしでメッセージをログに記録します。 |
Log(Level, String, Object) |
1 つのオブジェクト パラメーターを使用してメッセージをログに記録します。 |
Log(Level, String, Object[]) |
オブジェクト引数の配列を使用してメッセージをログに記録します。 |
Log(Level, String, Throwable) |
関連するスロー可能な情報を含むメッセージをログに記録します。 |
Log(Level, Throwable, ISupplier) |
遅延で構築されたメッセージを、関連付けられた Throwable 情報と共にログに記録します。 |
Log(LogRecord) |
LogRecord をログに記録します。 |
Logp(Level, String, String, ISupplier) |
遅延で構築されたメッセージをログに記録し、引数なしでソース クラスとメソッドを指定します。 |
Logp(Level, String, String, String) |
引数を指定せず、ソース クラスとメソッドを指定してメッセージをログに記録します。 |
Logp(Level, String, String, String, Object) |
ソース クラスとメソッドを指定し、単一のオブジェクト パラメーターを使用してメッセージをログ メッセージに記録します。 |
Logp(Level, String, String, String, Object[]) |
オブジェクト引数の配列を使用して、ソース クラスとメソッドを指定してメッセージをログに記録します。 |
Logp(Level, String, String, String, Throwable) |
ソース クラスとメソッドを指定し、関連付けられた Throwable 情報を含むメッセージをログに記録します。 |
Logp(Level, String, String, Throwable, ISupplier) |
遅延で構築されたメッセージをログに記録し、関連する Throwable 情報を含むソース クラスとメソッドを指定します。 |
Logrb(Level, String, String, ResourceBundle, String, Object[]) |
ソース クラス、メソッド、およびリソース バンドル名を引数なしで指定して、メッセージをログに記録します。 |
Logrb(Level, String, String, ResourceBundle, String, Throwable) |
ソース クラス、メソッド、リソース バンドルを指定して、関連する Throwable 情報を含むメッセージをログに記録します。 |
Logrb(Level, String, String, String, String) |
ソース クラス、メソッド、およびリソース バンドル名を引数なしで指定して、メッセージをログに記録します。 |
Logrb(Level, String, String, String, String, Object) |
1 つのオブジェクト パラメーターを使用して、ソース クラス、メソッド、およびリソース バンドル名を指定して、メッセージをログ メッセージに記録します。 |
Logrb(Level, String, String, String, String, Object[]) |
オブジェクト引数の配列を使用して、ソース クラス、メソッド、およびリソース バンドル名を指定して、メッセージをログに記録します。 |
Logrb(Level, String, String, String, String, Throwable) |
ソース クラス、メソッド、リソース バンドル名を指定して、関連付けられた Throwable 情報を含むメッセージをログに記録します。 |
Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドをウェイクアップします。 (継承元 Object) |
NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドをウェイクアップします。 (継承元 Object) |
RemoveHandler(Handler) |
ログ ハンドラーを削除します。 |
SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
Severe(ISupplier) |
SEVERE メッセージをログに記録します。これは、メッセージが実際にログに記録されるようにログ レベルが設定されている場合にのみ作成されます。 |
Severe(String) |
SEVERE メッセージをログに記録します。 |
Throwing(String, String, Throwable) |
例外をスローするログ。 |
ToArray<T>() |
Logger オブジェクトは、特定のシステムまたはアプリケーション コンポーネントのメッセージをログに記録するために使用されます。 (継承元 Object) |
ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
UnregisterFromRuntime() |
Logger オブジェクトは、特定のシステムまたはアプリケーション コンポーネントのメッセージをログに記録するために使用されます。 (継承元 Object) |
Wait() |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または <em>割り込み</em によって待機します>。 (継承元 Object) |
Wait(Int64) |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Wait(Int64, Int32) |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Warning(ISupplier) |
警告メッセージをログに記録します。これは、ログ レベルがメッセージが実際にログに記録されるようにする場合にのみ作成されます。 |
Warning(String) |
警告メッセージをログに記録します。 |
明示的なインターフェイスの実装
IJavaPeerable.Disposed() |
Logger オブジェクトは、特定のシステムまたはアプリケーション コンポーネントのメッセージをログに記録するために使用されます。 (継承元 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
Logger オブジェクトは、特定のシステムまたはアプリケーション コンポーネントのメッセージをログに記録するために使用されます。 (継承元 Object) |
IJavaPeerable.Finalized() |
Logger オブジェクトは、特定のシステムまたはアプリケーション コンポーネントのメッセージをログに記録するために使用されます。 (継承元 Object) |
IJavaPeerable.JniManagedPeerState |
Logger オブジェクトは、特定のシステムまたはアプリケーション コンポーネントのメッセージをログに記録するために使用されます。 (継承元 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Logger オブジェクトは、特定のシステムまたはアプリケーション コンポーネントのメッセージをログに記録するために使用されます。 (継承元 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Logger オブジェクトは、特定のシステムまたはアプリケーション コンポーネントのメッセージをログに記録するために使用されます。 (継承元 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Logger オブジェクトは、特定のシステムまたはアプリケーション コンポーネントのメッセージをログに記録するために使用されます。 (継承元 Object) |
拡張メソッド
JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
JavaCast<TResult>(IJavaObject) |
Logger オブジェクトは、特定のシステムまたはアプリケーション コンポーネントのメッセージをログに記録するために使用されます。 |
GetJniTypeName(IJavaPeerable) |
Logger オブジェクトは、特定のシステムまたはアプリケーション コンポーネントのメッセージをログに記録するために使用されます。 |