public class LogManager extends Object
この LogManager には次の機能があります。
グローバル LogManager オブジェクトは、LogManager.getLogManager() を使って取得できます。この LogManager オブジェクトはクラスの初期化中に作成され、その後は変更できません。
LogManager クラスは、起動時に java.util.logging.manager システムプロパティーを使用して配置されます。
LogManager はデフォルトで、JRE ディレクトリ内のプロパティーファイル「lib/logging.properties」から初期構成を読み取ります。そのプロパティーファイルを編集すれば、その JRE のすべての使用に対するデフォルトのロギング構成を変更できます。
また、LogManager は初期構成の読み込みをより詳細に制御できる、次の 2 つのシステムプロパティーオプションを使用します。
java.util.logging.config.class プロパティーが設定されている場合、そのプロパティー値はクラス名とみなされます。指定されたクラスがロードされ、オブジェクトが 1 つインスタンス化されますが、そのオブジェクトのコンストラクタが初期構成を読み込みを行います。このオブジェクトは、構成を制御するためにほかのシステムプロパティーを使用する場合があります。代替構成クラスは、readConfiguration(InputStream) を使って LogManager 内のプロパティーを定義できます。
「java.util.logging.config.class」プロパティーが設定されていない場合、java.util.logging.config.file システムプロパティーを使えば、java.util.Properties 形式のプロパティーファイルを指定できます。このファイルから初期ロギング構成が読み取られます。
これらのプロパティーのいずれも定義されない場合、前述のとおり、LogManager は JRE ディレクトリのプロパティーファイル lib/logging.properties からその初期構成を読み込みます。
ロガーと Handler のプロパティーは、ハンドラやロガーに関してドットで区切られた名前から始まる名前を持ちます。
グローバルログのプロパティーには次のものがあります。
LogManager の構成中にロードされるクラスはすべて、ユーザークラスパス上で検索される前にまずシステムクラスパス上で検索されることに注意してください。これには LogManager クラス、すべての config クラス、すべての handler クラスが含まれます。
Logger は、そのドットで区切られた名前に基づいて、ネーミング階層へと構造化されます。その結果、「a.b.c」は「a.b」の子になりますが、「a.b1」および「a.b2」はピアになります。
名前が「.level」で終わるプロパティーはすべて、Logger のログレベルを定義しているとみなされます。したがって、「foo.level」は「foo」と呼ばれるロガー、およびネーミング階層にあるその子のログレベルを再帰的に定義します。ログレベルは、プロパティーファイルで定義した順に適用されます。したがって、ツリー内の子ノードに対するレベルの設定は親に対する設定のあとに行う必要があります。プロパティー名「.level」を使えば、ツリーのルートのレベルを設定できます。
LogManager オブジェクトのすべてのメソッドはマルチスレッドに対して安全です。
修飾子と型 | フィールドと説明 |
---|---|
static String |
LOGGING_MXBEAN_NAME
ロギング機能の管理インタフェースの
ObjectName の文字列表現。 |
修飾子 | コンストラクタと説明 |
---|---|
protected |
LogManager()
protected コンストラクタです。
|
修飾子と型 | メソッドと説明 |
---|---|
boolean |
addLogger(Logger logger)
名前付きロガーを追加します。
|
void |
addPropertyChangeListener(PropertyChangeListener l)
ログのプロパティーが再読み込みされたときに呼び出されるイベントリスナーを追加します。
|
void |
checkAccess()
現在のコンテキストが信頼されていてロギング構成を変更できるかどうかをチェックします。
|
Logger |
getLogger(String name)
名前付きロガーを検出するメソッドです。
|
Enumeration<String> |
getLoggerNames()
既知のロガーの名前の列挙を返します。
|
static LoggingMXBean |
getLoggingMXBean()
ロガーを管理するための LoggingMXBean を返します。
|
static LogManager |
getLogManager()
グローバル LogManager を返します。
|
String |
getProperty(String name)
ログのプロパティーの値を返します。
|
void |
readConfiguration()
ログのプロパティーを再度初期化してログ構成を再度読み込みます。
|
void |
readConfiguration(InputStream ins)
ロギングプロパティーを再度初期化し、指定されたストリームからログ構成を再度読み込みます。これは java.util.Properties 形式であるべきです。
|
void |
removePropertyChangeListener(PropertyChangeListener l)
プロパティー変更イベントのイベントリスナーを削除します。
|
void |
reset()
ログの構成をリセットします。
|
public static final String LOGGING_MXBEAN_NAME
ObjectName
の文字列表現。PlatformLoggingMXBean
、LoggingMXBean
、定数フィールド値protected LogManager()
public static LogManager getLogManager()
public void addPropertyChangeListener(PropertyChangeListener l) throws SecurityException
l
- event listenerSecurityException
- セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合。NullPointerException
- PropertyChangeListener が null の場合。public void removePropertyChangeListener(PropertyChangeListener l) throws SecurityException
addPropertyChangeListener
を複数回呼び出すことで同じリスナーの複数のインスタンスがリスナーテーブルに追加されていた場合、そのリスナーのすべてのインスタンスをリスナーテーブルから削除するには、removePropertyChangeListener
をそれと同じ回数だけ呼び出す必要があります。
指定されたリスナーが見つからない場合は何も行わずに復帰します。
l
- イベントリスナー (null も可)SecurityException
- セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合。public boolean addLogger(Logger logger)
Logger のファクトリメソッドは、このメソッドを呼び出して、新規に作成された各 Logger を登録します。
アプリケーションは、この Logger オブジェクトへの独自の参照を保持すべきです。それにより、このオブジェクトがガベージコレクトされるのを防げます。LogManager は弱参照しか保持できません。
logger
- 新しいロガー。NullPointerException
- ロガーの名前が null の場合。public Logger getLogger(String name)
信頼できないコードが任意の名前のロガーを作成する場合があるので、このメソッドはセキュリティー上重要なロギング用の Logger の検出には使用しないでください。文字列 name
に関連付けられた Logger は、Logger への強い参照がない場合に、いつでもガベージコレクトされる可能性があることを理解することも重要です。このメソッドの呼び出し元は、Logger がガベージコレクトされた場合に適切に対処するため、null の戻り値を確認する必要があります。
name
- ロガーの名前public Enumeration<String> getLoggerNames()
注:Logger は新しいクラスがロードされると動的に追加されます。このメソッドは現在登録されているロガーのみについて通知します。このメソッドは、Logger そのものへの強い参照ではなく、Logger の名前だけを返すことを理解しておくことも重要です。返された文字列は、Logger のガベージコレクションを防ぐことについては、何も行いません。特に、返された名前が LogManager.getLogger()
に渡された場合は、このメソッドによって名前が返された時点以降に Logger がガベージコレクトされる場合に適切に対処するため、呼び出し元は LogManager.getLogger()
からの null の戻り値を確認する必要があります。
public void readConfiguration() throws IOException, SecurityException
起動時に使用されるのと同じ構成プロパティー検索規則が使用されます。このため、ロギングプロパティーの再読み込みは通常、起動時に使用されたのと同じファイルから行われます。
新しい構成ファイルのすべてのログレベルの定義は、ターゲットの Logger がある場合は Logger.setLevel() を使って適用されます。
PropertyChangeEvent はプロパティーが読み込まれてからトリガーされます。
SecurityException
- セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合。IOException
- 構成を読み込むときに入出力の問題が発生した場合。public void reset() throws SecurityException
すべての名前付きロガーについて、reset オペレーションはすべての Handler (ルートロガーのものは除く) を削除して閉じ、レベルを null に設定します。ルートロガーのレベルは Level.INFO に設定されます。
SecurityException
- セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合。public void readConfiguration(InputStream ins) throws IOException, SecurityException
新しい構成ファイルのすべてのログレベルの定義は、ターゲットの Logger がある場合は Logger.setLevel() を使って適用されます。
ins
- プロパティーを読み込むストリームSecurityException
- セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合。IOException
- ストリームからの読み込みに問題がある場合。public String getProperty(String name)
name
- プロパティー名public void checkAccess() throws SecurityException
このチェックに失敗した場合は SecurityException をスローします。そうでない場合は正常に復帰します。
SecurityException
- セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合。public static LoggingMXBean getLoggingMXBean()
PlatformLoggingMXBean
インタフェースを通じて管理することもできます。
PlatformLoggingMXBean logging = ManagementFactory.getPlatformMXBean
(PlatformLoggingMXBean.class);
LoggingMXBean
オブジェクト。PlatformLoggingMXBean
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.