public class Logger extends Object
Logger オブジェクトを取得するには、getLogger ファクトリメソッドのいずれかを呼び出します。これらは、新しい Logger を作成するか、既存の適した Logger を返します。getLogger
ファクトリメソッドのいずれかによって返される Logger は、Logger に対する強い参照が保持されなければ、いつでもガベージコレクトされる可能性があると理解することが重要です。
ログメッセージは登録された Handler オブジェクトに転送されます。このオブジェクトは、コンソール、ファイル、OS ログなどさまざまな出力先にメッセージを転送できます。
各 Logger は、Logger の名前空間にある既存の上位クラスにもっとも近い「親」Logger を追跡します。
各 Logger には「Level」が関連付けられます。これは、このロガーの処理対象となる最小の Level を表します。Logger のレベルが null に設定された場合、その実効レベルはその親から継承されます。そして、その親もまたその親から、再帰的にレベルを取得する可能性があります。同様のことがツリーの上方に向けて繰り返されます。
ログレベルは、LogManager クラスで説明しているように、ロギング構成ファイルのプロパティーに基づいて構成できます。ただしそれは、Logger.setLevel メソッドを呼び出して動的に変更することもできます。あるロガーのレベルが変更された場合、その変更はその子のロガーにも影響を与えます。なぜなら、レベル null を持つ子ロガーはすべて、その親から実効レベルを継承するからです。
ロギング呼び出しが行われるたびに、Logger はまず、そのロガーの実効ログレベルに基づく要求レベル (SEVERE や FINE など) の低コストなチェックを実行します。要求レベルがログレベルよりも低い場合、ロギング呼び出しはすぐに復帰します。
この初期テスト (低コストのテスト) にパスすると、Logger は、LogRecord を割り当ててロギングメッセージを記述します。次に、それは、Filter が存在する場合にはそれを呼び出し、そのレコードを発行すべきかどうかについて、より詳しいチェックを行います。それにパスした場合、それは、その LogRecord を自身の出力 Handler に発行します。デフォルトでは、ロガーは親の Handler にも発行します。これが、ツリーの上方に向けて再帰的に繰り返されます。
各 Logger には、関連付けられた ResourceBundle 名があります。この指定されたバンドルは、ロギングメッセージをローカライズするために使用されます。独自の ResourceBundle 名を持たない Logger は、ResourceBundle 名を親から継承します。これが、ツリーの上方に向けて再帰的に繰り返されます。
ロガーの出力メソッドのほとんどは、「msg」引数を取ります。この msg 引数には、生の値、ローカリゼーションキーのいずれかを指定できます。ロガーがローカリゼーション ResourceBundle を所有 (または継承) していて、その ResourceBundle に msg 文字列のマッピングが含まれている場合、フォーマット処理時に msg 文字列がローカライズされた値で置換されます。それ以外の場合は、元の msg 文字列が使用されます。フォーマッタは通常、java.text.MessageFormat スタイルのフォーマットを使ってパラメータのフォーマット処理を行います。このため、たとえば、フォーマット文字列「{0} {1}」は、2 つのパラメータを文字列としてフォーマットします。
ResourceBundle 名を ResourceBundle にマッピングする際、Logger はまず、Thread の ContextClassLoader の使用を試みます。それが null の場合、それは代わりに SystemClassLoader を試みます。ContextClassLoader、SystemClassLoader のいずれからも ResourceBundle が見つからない場合、Logger は、初期実装の一時的な移行用機能としてさらに呼び出しスタックを検索し、連続して呼び出しを行なっている ClassLoader を使って ResourceBundle を検索を試みます。(この呼び出しスタック検索は、コンテナが ContextClassLoader を使用する方法に移行できるようにするためのものであり、将来のバージョンでは削除される可能性がある。)
ローカリゼーションを含むフォーマット処理は、通常 Formatter を呼び出す出力 Handler を担当します。
フォーマット処理は同期的に行う必要がないことに注意してください。それは、LogRecord が外部シンクに実際に書き込まれるまで遅延できます。
ロギングメソッドは、次の 5 つの主なカテゴリに分類されます。
ログレベル、メッセージ文字列、およびそのメッセージ文字列への任意のパラメータを取得する log メソッドのセット
log メソッドに類似するが、明示的なソースクラス名とメソッド名も取得する logp メソッドのセット (logp は「log precise」の略)
logp メソッドに類似するが、ログメッセージのローカライズに使用する明示的なリソースバンドル名も取得する logrb メソッドのセット (logrb は「log with resource bundle」の略)
メソッドのエントリ (entering メソッド)、メソッドの復帰 (exiting メソッド)、および例外のスロー (throwing メソッド) を追跡するための簡易メソッド
最後に、開発者がただ単純な文字列を特定のログレベルでロギングする、といった非常に単純な場合に使用するための、一連の簡易メソッドが存在する。これらのメソッドは、「severe」、「warning」、「info」など、標準の Level 名にちなんだ名前を持ち、メッセージ文字列を単一の引数として取る。
明示的なソース名とメソッド名を取らないメソッドの場合、Logging フレームワークは「最善の努力」を払って、どのクラスとメソッドがそのロギングメソッドを呼び出したのかを判定します。ただし、自動的に推測されたこの情報は概略に過ぎない (それどころか完全な間違いである可能性さえある) ことを理解しておく必要があります。仮想マシンは、JIT 処理の際に大規模な最適化を行うことが許されており、スタックフレームをすべて削除する可能性があるため、呼び出しクラスとメソッドを確実に検出することは不可能となっています。
Logger のすべてのメソッドは、マルチスレッドセーフです。
サブクラス化に関する情報: LogManager クラスが名前付き Logger の独自実装を名前空間内の任意の位置に提供する可能性があることに注意してください。したがって、Logger のすべてのサブクラスは、(それらが別の新しい LogManager クラスとともに実装されたのでないかぎり)、忘れずに LogManager クラスから Logger インスタンスを取得し、そのインスタンスに「isLoggable」や「log(LogRecord)」などのオペレーションを委譲すべきです。すべてのロギング出力を横取りするためにサブクラスが行う必要があるのは、log(LogRecord) メソッドのオーバーライドだけであることに注意してください。ほかのロギングメソッドはすべて、この log(LogRecord) メソッドへの呼び出しとして実装されています。
修飾子と型 | フィールドと説明 |
---|---|
static Logger |
global
非推奨。
このフィールドの初期化時にデッドロックが発生する可能性があります。このフィールドは Logger クラス初期化によって初期化されますが、それにより、LogManager クラス初期化との間でデッドロックが発生する可能性があります。そのような場合、2 つのクラス初期化は他方が完了するまで待機します。グローバルロガーオブジェクトを取得するための推奨の方法は、
Logger.getGlobal() を呼び出すことです。Logger.getGlobal() を使用できない古い JDK バージョンとの互換性のため、Logger.getLogger(Logger.GLOBAL_LOGGER_NAME) または Logger.getLogger("global") の呼び出しを使用してください。 |
static String |
GLOBAL_LOGGER_NAME
GLOBAL_LOGGER_NAME は、グローバルロガーの名前です。
|
修飾子 | コンストラクタと説明 |
---|---|
protected |
Logger(String name, String resourceBundleName)
名前付きサブシステムのロガーを構築する protected メソッドです。
|
修飾子と型 | メソッドと説明 |
---|---|
void |
addHandler(Handler handler)
ログ Handler を追加してログメッセージを受け取ります。
|
void |
config(String msg)
CONFIG メッセージのログをとります。
|
void |
entering(String sourceClass, String sourceMethod)
メソッドエントリのログをとります。
|
void |
entering(String sourceClass, String sourceMethod, Object param1)
1 つのパラメータを持つメソッドエントリのログをとります。
|
void |
entering(String sourceClass, String sourceMethod, Object[] params)
パラメータの配列を持つメソッドエントリのログをとります。
|
void |
exiting(String sourceClass, String sourceMethod)
メソッド復帰のログをとります。
|
void |
exiting(String sourceClass, String sourceMethod, Object result)
結果オブジェクトを持つメソッド復帰のログをとります。
|
void |
fine(String msg)
FINE メッセージのログをとります。
|
void |
finer(String msg)
FINER メッセージのログをとります。
|
void |
finest(String msg)
FINEST メッセージのログをとります。
|
static Logger |
getAnonymousLogger()
匿名 Logger を作成します。
|
static Logger |
getAnonymousLogger(String resourceBundleName)
匿名 Logger を作成します。
|
Filter |
getFilter()
この Logger の現在のフィルタを返します。
|
static Logger |
getGlobal()
Logger.GLOBAL_LOGGER_NAME という名前でグローバルロガーオブジェクトを返します。
|
Handler[] |
getHandlers()
このロガーに関連した Handler を返します。
|
Level |
getLevel()
この Logger に指定されたログ Level を取得します。
|
static Logger |
getLogger(String name)
指定されたサブシステムのロガーを検出または作成します。
|
static Logger |
getLogger(String name, String resourceBundleName)
指定されたサブシステムのロガーを検出または作成します。
|
String |
getName()
このロガーの名前を返します。
|
Logger |
getParent()
このロガーの親を返します。
|
ResourceBundle |
getResourceBundle()
現在のデフォルトロケールに対するこのロガーのローカリゼーションリソースバンドルを取得します。
|
String |
getResourceBundleName()
このロガーのローカリゼーションリソースバンドルの名前を取得します。
|
boolean |
getUseParentHandlers()
このロガーが出力をその親ロガーに送信しているかどうかを検出します。
|
void |
info(String msg)
INFO メッセージのログをとります。
|
boolean |
isLoggable(Level level)
指定されたレベルのメッセージがこのロガーによって実際にロギングされるかどうかをチェックします。
|
void |
log(Level level, String msg)
引数のないメッセージのログをとります。
|
void |
log(Level level, String msg, Object param1)
1 つのオブジェクトのパラメータを持つメッセージのログをとります。
|
void |
log(Level level, String msg, Object[] params)
オブジェクトの引数の配列を持つメッセージのログをとります。
|
void |
log(Level level, String msg, Throwable thrown)
関連する Throwable 情報を持つメッセージのログをとります。
|
void |
log(LogRecord record)
LogRecord のログをとります。
|
void |
logp(Level level, String sourceClass, String sourceMethod, String msg)
ソースクラスとメソッドを指定する、引数のないメッセージのログをとります。
|
void |
logp(Level level, String sourceClass, String sourceMethod, String msg, Object param1)
ソースクラスとメソッドを指定し、ログメッセージに対して単一のオブジェクトパラメータを持つメッセージのログをとります。
|
void |
logp(Level level, String sourceClass, String sourceMethod, String msg, Object[] params)
ソースクラスとメソッドを指定する、オブジェクトの引数の配列を持つメッセージのログをとります。
|
void |
logp(Level level, String sourceClass, String sourceMethod, String msg, Throwable thrown)
ソースクラスとメソッドを指定し、関連する Throwable 情報を持つメッセージのログをとります。
|
void |
logrb(Level level, String sourceClass, String sourceMethod, String bundleName, String msg)
ソースクラス、メソッド、およびリソースバンドル名を指定し、引数のないメッセージのログをとります。
|
void |
logrb(Level level, String sourceClass, String sourceMethod, String bundleName, String msg, Object param1)
ソースクラス、メソッド、およびリソースバンドル名を指定し、ログメッセージに対して単一のオブジェクトパラメータを持つメッセージのログをとります。
|
void |
logrb(Level level, String sourceClass, String sourceMethod, String bundleName, String msg, Object[] params)
ソースクラス、メソッド、およびリソースバンドル名を指定し、オブジェクトの引数の配列を持つメッセージのログをとります。
|
void |
logrb(Level level, String sourceClass, String sourceMethod, String bundleName, String msg, Throwable thrown)
ソースクラス、メソッド、およびリソースバンドル名を指定し、関連する Throwable 情報を持つメッセージのログをとります。
|
void |
removeHandler(Handler handler)
ログ Handler を削除します。
|
void |
setFilter(Filter newFilter)
フィルタを設定してこの Logger の出力を制御します。
|
void |
setLevel(Level newLevel)
このロガーがどのメッセージレベルをロギングするかを指定するログレベルを設定します。
|
void |
setParent(Logger parent)
このロガーの親を設定します。
|
void |
setUseParentHandlers(boolean useParentHandlers)
このロガーが出力をその親ロガーに送信すべきかどうかを指定します。
|
void |
severe(String msg)
SEVERE メッセージのログをとります。
|
void |
throwing(String sourceClass, String sourceMethod, Throwable thrown)
例外をスローするログをとります。
|
void |
warning(String msg)
WARNING メッセージのログをとります。
|
public static final String GLOBAL_LOGGER_NAME
@Deprecated public static final Logger global
Logger.getGlobal()
を呼び出すことです。Logger.getGlobal()
を使用できない古い JDK バージョンとの互換性のため、Logger.getLogger(Logger.GLOBAL_LOGGER_NAME)
または Logger.getLogger("global")
の呼び出しを使用してください。protected Logger(String name, String resourceBundleName)
当初、ロガーは Level が null、useParentHandlers が true で構成されます。
name
- ロガーの名前。これはドットで区切られた名前にすべきであり、通常は java.net や javax.swing など、サブシステムのパッケージ名またはクラス名に基づいた名前にすべきである。匿名 Logger の場合は null も可能resourceBundleName
- このロガーのメッセージのローカライズに使用される ResourceBundle の名前。ローカリゼーションを必要とするメッセージが存在しない場合は null も可能MissingResourceException
- resourceBundleName が null 以外であり、それに対応するリソースが見つからない場合。public static final Logger getGlobal()
public static Logger getLogger(String name)
新しいロガーが作成される場合、そのログレベルは LogManager の構成に基づいて設定され、またそのログ出力を親の Handler に送信するように設定されます。これは LogManager のグローバル名前空間に登録されます。
注: LogManager は新しく作成されたロガーへの弱参照しか保持できません。指定した名前で以前に作成されたロガーは、ロガーへの強い参照がない場合に、いつでもガベージコレクトされる可能性があることを理解することが重要です。特に、このことは、getLogger("MyLogger").log(...)
などの 2 つの連続した呼び出しで、プログラムのどこにも「MyLogger」という名前のロガーへの強い参照がない場合、「MyLogger」という名前の別のロガーオブジェクトが使われる可能性があることを意味します。
name
- ロガーの名前。これはドットで区切られた名前にすべきであり、通常は java.net や javax.swing など、サブシステムのパッケージ名またはクラス名に基づいた名前にすべきであるNullPointerException
- 名前が null の場合。public static Logger getLogger(String name, String resourceBundleName)
新しいロガーが作成される場合、そのログレベルは LogManager の構成に基づいて設定され、またそのログ出力を親の Handler に送信するように設定されます。これは LogManager のグローバル名前空間に登録されます。
注: LogManager は新しく作成されたロガーへの弱参照しか保持できません。指定した名前で以前に作成されたロガーは、ロガーへの強い参照がない場合に、いつでもガベージコレクトされる可能性があることを理解することが重要です。特に、このことは、getLogger("MyLogger", ...).log(...)
などの 2 つの連続した呼び出しで、プログラムのどこにも「MyLogger」という名前のロガーへの強い参照がない場合、「MyLogger」という名前の別のロガーオブジェクトが使われる可能性があることを意味します。
指定された Logger がすでに存在しており、それがローカリゼーションリソースバンドルをまだ持っていない場合は、指定されたリソースバンドル名が使用されます。指定された Logger がすでに存在しており、それが異なるリソースバンドル名を持っている場合は、IllegalArgumentException がスローされます。
name
- ロガーの名前。これはドットで区切られた名前にすべきであり、通常は java.net や javax.swing など、サブシステムのパッケージ名またはクラス名に基づいた名前にすべきであるresourceBundleName
- このロガーのメッセージのローカライズに使用される ResourceBundle の名前。ローカリゼーションを必要とするメッセージが存在しない場合は null
も可能。MissingResourceException
- resourceBundleName が null 以外であり、それに対応するリソースが見つからない場合。IllegalArgumentException
- Logger がすでに存在しており、それが異なるリソースバンドル名を使用している場合。NullPointerException
- 名前が null の場合。public static Logger getAnonymousLogger()
このファクトリメソッドの主な目的は、アプレットからの使用です。結果として得られる Logger は匿名であるため、作成元のクラスによって非公開の状態に保たれます。これにより、通常のセキュリティーチェックを行う必要がなくなり、信頼できないアプレットコードが Logger の制御状態を更新できるようになります。たとえば、アプレットは、匿名の Logger 上で setLevel や addHandler を実行できます。
新しいロガーは、匿名ではありますが、ルートロガー ("") を親に持つように構成されます。これは、そのロガーがデフォルトで、実効レベルとハンドラをルートロガーから継承することを意味します。
public static Logger getAnonymousLogger(String resourceBundleName)
このファクトリメソッドの主な目的は、アプレットからの使用です。結果として得られる Logger は匿名であるため、作成元のクラスによって非公開の状態に保たれます。これにより、通常のセキュリティーチェックを行う必要がなくなり、信頼できないアプレットコードが Logger の制御状態を更新できるようになります。たとえば、アプレットは、匿名の Logger 上で setLevel や addHandler を実行できます。
新しいロガーは、匿名ではありますが、ルートロガー ("") を親に持つように構成されます。これは、そのロガーがデフォルトで、実効レベルとハンドラをルートロガーから継承することを意味します。
resourceBundleName
- このロガーのメッセージのローカライズに使用される ResourceBundle の名前。ローカリゼーションを必要とするメッセージが存在しない場合は null も可能MissingResourceException
- resourceBundleName が null 以外であり、それに対応するリソースが見つからない場合。public ResourceBundle getResourceBundle()
public String getResourceBundleName()
public void setFilter(Filter newFilter) throws SecurityException
初期の「レベル」検査に合格すると、Logger はこの Filter を呼び出してログレコードが実際に通知されるかどうかを調べます。
newFilter
- フィルタオブジェクト (null の場合がある)SecurityException
- セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合。public Filter getFilter()
public void log(LogRecord record)
このクラス内のその他のロギングメソッドはすべて、このメソッドを呼び出すことで、実際のあらゆるロギングを実行します。サブクラスは、このメソッドをオーバーライドするだけで、すべてのログ活動を捕捉できます。
record
- 通知される LogRecordpublic void log(Level level, String msg)
指定されたメッセージレベルで現在ロガーが使用可能な場合、指定されたメッセージは登録されたすべての出力 Handler オブジェクトに転送されます。
level
- メッセージレベル識別子の 1 つ。たとえば、SEVEREmsg
- 文字列メッセージ、またはメッセージカタログのキーpublic void log(Level level, String msg, Object param1)
指定されたメッセージレベルで現在ロガーが使用可能な場合、対応する LogRecord が作成され、登録されたすべての出力 Handler オブジェクトに転送されます。
level
- メッセージレベル識別子の 1 つ。たとえば、SEVEREmsg
- 文字列メッセージ、またはメッセージカタログのキーparam1
- メッセージのパラメータpublic void log(Level level, String msg, Object[] params)
指定されたメッセージレベルで現在ロガーが使用可能な場合、対応する LogRecord が作成され、登録されたすべての出力 Handler オブジェクトに転送されます。
level
- メッセージレベル識別子の 1 つ。たとえば、SEVEREmsg
- 文字列メッセージ、またはメッセージカタログのキーparams
- メッセージのパラメータの配列public void log(Level level, String msg, Throwable thrown)
指定されたメッセージレベルで現在ロガーが使用可能な場合、指定された引数が、登録されたすべての出力ハンドラに転送された LogRecord に格納されます。
thrown 引数は、LogRecord の parameters プロパティーにではなく、LogRecord の thrown プロパティーに格納されることに注意してください。このため、それは出力 Formatter によって特別な方法で処理されます。LogRecord の message プロパティーに対するフォーマット処理パラメータとはみなされません。
level
- メッセージレベル識別子の 1 つ。たとえば、SEVEREmsg
- 文字列メッセージ、またはメッセージカタログのキーthrown
- ログメッセージに関連した Throwable。public void logp(Level level, String sourceClass, String sourceMethod, String msg)
指定されたメッセージレベルで現在ロガーが使用可能な場合、指定されたメッセージは登録されたすべての出力 Handler オブジェクトに転送されます。
level
- メッセージレベル識別子の 1 つ。たとえば、SEVEREsourceClass
- ロギングの要求を発行したクラス名sourceMethod
- ロギングの要求を発行したメソッド名msg
- 文字列メッセージ、またはメッセージカタログのキーpublic void logp(Level level, String sourceClass, String sourceMethod, String msg, Object param1)
指定されたメッセージレベルで現在ロガーが使用可能な場合、対応する LogRecord が作成され、登録されたすべての出力 Handler オブジェクトに転送されます。
level
- メッセージレベル識別子の 1 つ。たとえば、SEVEREsourceClass
- ロギングの要求を発行したクラス名sourceMethod
- ロギングの要求を発行したメソッド名msg
- 文字列メッセージ、またはメッセージカタログのキーparam1
- ログメッセージのパラメータ。public void logp(Level level, String sourceClass, String sourceMethod, String msg, Object[] params)
指定されたメッセージレベルで現在ロガーが使用可能な場合、対応する LogRecord が作成され、登録されたすべての出力 Handler オブジェクトに転送されます。
level
- メッセージレベル識別子の 1 つ。たとえば、SEVEREsourceClass
- ロギングの要求を発行したクラス名sourceMethod
- ロギングの要求を発行したメソッド名msg
- 文字列メッセージ、またはメッセージカタログのキーparams
- メッセージのパラメータの配列public void logp(Level level, String sourceClass, String sourceMethod, String msg, Throwable thrown)
指定されたメッセージレベルで現在ロガーが使用可能な場合、指定された引数が、登録されたすべての出力ハンドラに転送された LogRecord に格納されます。
thrown 引数は、LogRecord の parameters プロパティーにではなく、LogRecord の thrown プロパティーに格納されることに注意してください。このため、それは出力 Formatter によって特別な方法で処理されます。LogRecord の message プロパティーに対するフォーマット処理パラメータとはみなされません。
level
- メッセージレベル識別子の 1 つ。たとえば、SEVEREsourceClass
- ロギングの要求を発行したクラス名sourceMethod
- ロギングの要求を発行したメソッド名msg
- 文字列メッセージ、またはメッセージカタログのキーthrown
- ログメッセージに関連した Throwable。public void logrb(Level level, String sourceClass, String sourceMethod, String bundleName, String msg)
指定されたメッセージレベルで現在ロガーが使用可能な場合、指定されたメッセージは登録されたすべての出力 Handler オブジェクトに転送されます。
msg 文字列は、指定されたリソースバンドルを使ってローカライズされます。リソースバンドル名が null、空の String のいずれかであるか無効である場合、msg 文字列はローカライズされません。
level
- メッセージレベル識別子の 1 つ。たとえば、SEVEREsourceClass
- ロギングの要求を発行したクラス名sourceMethod
- ロギングの要求を発行したメソッド名bundleName
- msg をローカライズするためのリソースバンドル名。null も可能msg
- 文字列メッセージ、またはメッセージカタログのキーpublic void logrb(Level level, String sourceClass, String sourceMethod, String bundleName, String msg, Object param1)
指定されたメッセージレベルで現在ロガーが使用可能な場合、対応する LogRecord が作成され、登録されたすべての出力 Handler オブジェクトに転送されます。
msg 文字列は、指定されたリソースバンドルを使ってローカライズされます。リソースバンドル名が null、空の String のいずれかであるか無効である場合、msg 文字列はローカライズされません。
level
- メッセージレベル識別子の 1 つ。たとえば、SEVEREsourceClass
- ロギングの要求を発行したクラス名sourceMethod
- ロギングの要求を発行したメソッド名bundleName
- msg をローカライズするためのリソースバンドル名。null も可能msg
- 文字列メッセージ、またはメッセージカタログのキーparam1
- ログメッセージのパラメータ。public void logrb(Level level, String sourceClass, String sourceMethod, String bundleName, String msg, Object[] params)
指定されたメッセージレベルで現在ロガーが使用可能な場合、対応する LogRecord が作成され、登録されたすべての出力 Handler オブジェクトに転送されます。
msg 文字列は、指定されたリソースバンドルを使ってローカライズされます。リソースバンドル名が null、空の String のいずれかであるか無効である場合、msg 文字列はローカライズされません。
level
- メッセージレベル識別子の 1 つ。たとえば、SEVEREsourceClass
- ロギングの要求を発行したクラス名sourceMethod
- ロギングの要求を発行したメソッド名bundleName
- msg をローカライズするためのリソースバンドル名。null も可能。msg
- 文字列メッセージ、またはメッセージカタログのキーparams
- メッセージのパラメータの配列public void logrb(Level level, String sourceClass, String sourceMethod, String bundleName, String msg, Throwable thrown)
指定されたメッセージレベルで現在ロガーが使用可能な場合、指定された引数が、登録されたすべての出力ハンドラに転送された LogRecord に格納されます。
msg 文字列は、指定されたリソースバンドルを使ってローカライズされます。リソースバンドル名が null、空の String のいずれかであるか無効である場合、msg 文字列はローカライズされません。
thrown 引数は、LogRecord の parameters プロパティーにではなく、LogRecord の thrown プロパティーに格納されることに注意してください。このため、それは出力 Formatter によって特別な方法で処理されます。LogRecord の message プロパティーに対するフォーマット処理パラメータとはみなされません。
level
- メッセージレベル識別子の 1 つ。たとえば、SEVEREsourceClass
- ロギングの要求を発行したクラス名sourceMethod
- ロギングの要求を発行したメソッド名bundleName
- msg をローカライズするためのリソースバンドル名。null も可能msg
- 文字列メッセージ、またはメッセージカタログのキーthrown
- ログメッセージに関連した Throwable。public void entering(String sourceClass, String sourceMethod)
これは、メソッドへのエントリのロギングに使用可能な簡易メソッドです。メッセージ「ENTRY」、ログレベル FINER、および指定された sourceMethod と sourceClass を含む LogRecord が、ロギングされます。
sourceClass
- ロギングの要求を発行したクラス名sourceMethod
- エントリしているメソッド名public void entering(String sourceClass, String sourceMethod, Object param1)
これは、メソッドへのエントリのロギングに使用可能な簡易メソッドです。メッセージ「ENTRY {0}」、ログレベル FINER、および指定された sourceMethod、sourceClass、パラメータを含む LogRecord が、ロギングされます。
sourceClass
- ロギングの要求を発行したクラス名sourceMethod
- エントリしているメソッド名param1
- エントリしているメソッドのパラメータpublic void entering(String sourceClass, String sourceMethod, Object[] params)
これは、メソッドへのエントリのロギングに使用可能な簡易メソッドです。メッセージ「ENTRY」(パラメータ配列内のエントリごとにフォーマット {N} インジケータが 1 つずつ続く)、ログレベル FINER、および指定された sourceMethod、sourceClass、パラメータを含む LogRecord が、ロギングされます。
sourceClass
- ロギングの要求を発行したクラス名sourceMethod
- エントリしているメソッド名params
- エントリしているメソッドのパラメータの配列public void exiting(String sourceClass, String sourceMethod)
これは、メソッドからの復帰のロギングに使用可能な簡易メソッドです。メッセージ「RETURN」、ログレベル FINER、および指定された sourceMethod と sourceClass を含む LogRecord が、ロギングされます。
sourceClass
- ロギングの要求を発行したクラス名sourceMethod
- メソッドの名前public void exiting(String sourceClass, String sourceMethod, Object result)
これは、メソッドからの復帰のロギングに使用可能な簡易メソッドです。メッセージ「RETURN {0}」、ログレベル FINER、および指定された sourceMethod、sourceClass、結果オブジェクトを含む LogRecord が、ロギングされます。
sourceClass
- ロギングの要求を発行したクラス名sourceMethod
- メソッドの名前result
- 返されたオブジェクトpublic void throwing(String sourceClass, String sourceMethod, Throwable thrown)
これは、あるメソッドが例外をスローして終了したことをロギングするための簡易メソッドです。このロギングは FINER レベルを使って行われます。
指定されたメッセージレベルで現在ロガーが使用可能な場合、指定された引数が、登録されたすべての出力ハンドラに転送された LogRecord に格納されます。LogRecord の message が「THROW」に設定されます。
thrown 引数は、LogRecord の parameters プロパティーにではなく、LogRecord の thrown プロパティーに格納されることに注意してください。このため、それは出力 Formatter によって特別な方法で処理されます。LogRecord の message プロパティーに対するフォーマット処理パラメータとはみなされません。
sourceClass
- ロギングの要求を発行したクラス名sourceMethod
- メソッドの名前。thrown
- スローされた Throwable。public void severe(String msg)
SEVERE メッセージレベルで現在ロガーが使用可能な場合、指定されたメッセージは登録されたすべての出力ハンドラに転送されます。
msg
- 文字列メッセージ、またはメッセージカタログのキーpublic void warning(String msg)
WARNING メッセージレベルで現在ロガーが使用可能な場合、指定されたメッセージは登録されたすべての出力 Handler オブジェクトに転送されます。
msg
- 文字列メッセージ、またはメッセージカタログのキーpublic void info(String msg)
INFO メッセージレベルで現在ロガーが使用可能な場合、指定されたメッセージは登録されたすべての出力 Handler オブジェクトに転送されます。
msg
- 文字列メッセージ、またはメッセージカタログのキーpublic void config(String msg)
CONFIG メッセージレベルで現在ロガーが使用可能な場合、指定されたメッセージは登録されたすべての出力 Handler オブジェクトに転送されます。
msg
- 文字列メッセージ、またはメッセージカタログのキーpublic void fine(String msg)
FINE メッセージレベルで現在ロガーが使用可能な場合、指定されたメッセージは登録されたすべての出力 Handler オブジェクトに転送されます。
msg
- 文字列メッセージ、またはメッセージカタログのキーpublic void finer(String msg)
FINER メッセージレベルで現在ロガーが使用可能な場合、指定されたメッセージは登録されたすべての出力 Handler オブジェクトに転送されます。
msg
- 文字列メッセージ、またはメッセージカタログのキーpublic void finest(String msg)
FINEST メッセージレベルで現在ロガーが使用可能な場合、指定されたメッセージは登録されたすべての出力 Handler オブジェクトに転送されます。
msg
- 文字列メッセージ、またはメッセージカタログのキーpublic void setLevel(Level newLevel) throws SecurityException
新しいレベルが null の場合、このノードが null 以外の特定のレベル値を持つもっとも近い上位ノードから、そのレベルを継承することを意味します。
newLevel
- ログレベルの新しい値 (null の場合がある)SecurityException
- セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合。public Level getLevel()
public boolean isLoggable(Level level)
level
- メッセージのログをとるレベルpublic String getName()
public void addHandler(Handler handler) throws SecurityException
デフォルトでは、ロガーは自分の親ロガーにも出力を送信します。ルート Logger は通常、基本的にすべてのロガーのデフォルトハンドラとして機能する一連の Handler を持つように構成されます。
handler
- ログ HandlerSecurityException
- セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合。public void removeHandler(Handler handler) throws SecurityException
指定された Handler が見つからないか null の場合は何も行わずに復帰します。
handler
- ログ HandlerSecurityException
- セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合。public Handler[] getHandlers()
public void setUseParentHandlers(boolean useParentHandlers)
useParentHandlers
- 出力がロガーの親に送信される場合は true。SecurityException
- セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合。public boolean getUseParentHandlers()
public Logger getParent()
このメソッドは名前空間でもっとも近い現存する親を返します。したがって、Logger が「a.b.c.d」と呼ばれ、「a.b」と呼ばれる Logger が作成されて、ロガー「a.b.c」が存在しない場合、Logger「a.b.c.d」の getParent の呼び出しは Logger「a.b」を返します。
名前空間のルート Logger を呼び出す場合、結果は null になります。
public void setParent(Logger parent)
これはアプリケーションコードから呼び出してはいけません。
parent
- 新しい親ロガーSecurityException
- セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.