public class LogManager extends Object
このLogManagerには次の機能があります。
グローバルLogManagerオブジェクトは、LogManager.getLogManager()を使って取得できます。このLogManagerオブジェクトはクラスの初期化中に作成され、その後は変更できません。
LogManagerクラスは、起動時にjava.util.logging.managerシステム・プロパティを使用して配置されます。
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はデフォルトの構成を使用します。デフォルトの構成は一般に、Javaインストール・ディレクトリのプロパティ・ファイル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)
非推奨。
PropertyChangeListener への依存は、Javaプラットフォームの将来のモジュール化に対する大きな障害になります。このメソッドは今後のリリースで削除される予定です。グローバルなLogManager は、readConfiguration メソッドをオーバーライドすることでロギング構成の変更を検出できます。 |
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)
非推奨。
PropertyChangeListener への依存は、Javaプラットフォームの将来のモジュール化に対する大きな障害になります。このメソッドは今後のリリースで削除される予定です。グローバルなLogManager は、readConfiguration メソッドをオーバーライドすることでロギング構成の変更を検出できます。 |
void |
reset()
ログの構成をリセットします。
|
public static final String LOGGING_MXBEAN_NAME
ObjectName
の文字列表現。PlatformLoggingMXBean
、LoggingMXBean
、定数フィールド値protected LogManager()
public static LogManager getLogManager()
@Deprecated public void addPropertyChangeListener(PropertyChangeListener l) throws SecurityException
PropertyChangeListener
への依存は、Javaプラットフォームの将来のモジュール化に対する大きな障害になります。このメソッドは今後のリリースで削除される予定です。グローバルなLogManager
は、readConfiguration
メソッドをオーバーライドすることでロギング構成の変更を検出できます。警告: このメソッドは、java.beans
パッケージを含まないJava SEのすべてのサブセットプロファイルのこのクラスから省略されています。
l
- event listenerSecurityException
- セキュリティ・マネージャが存在する場合で、呼出し元がLoggingPermission("control")を持っていない場合。NullPointerException
- PropertyChangeListenerがnullの場合。@Deprecated public void removePropertyChangeListener(PropertyChangeListener l) throws SecurityException
PropertyChangeListener
への依存は、Javaプラットフォームの将来のモジュール化に対する大きな障害になります。このメソッドは今後のリリースで削除される予定です。グローバルなLogManager
は、readConfiguration
メソッドをオーバーライドすることでロギング構成の変更を検出できます。addPropertyChangeListener
を複数回呼び出すことで同じリスナーの複数のインスタンスがリスナー・テーブルに追加されていた場合、そのリスナーのすべてのインスタンスをリスナー・テーブルから削除するには、removePropertyChangeListener
をそれと同じ回数だけ呼び出す必要があります。
指定されたリスナーが見つからない場合は何も行わずに復帰します。
警告: このメソッドは、java.beans
パッケージを含まないJava SEのすべてのサブセットプロファイルのこのクラスから省略されています。
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, 2014, Oracle and/or its affiliates. All rights reserved.