JavaTM Platform
Standard Ed. 6

java.util.logging
クラス LogManager

java.lang.Object
  上位を拡張 java.util.logging.LogManager

public class LogManager
extends Object

Logger とログサービスの共有状態のセットを管理するために使用される単一のグローバル LogManager オブジェクトがあります。

この LogManager には次の機能があります。

グローバル LogManager オブジェクトは、LogManager.getLogManager() を使って取得できます。この LogManager オブジェクトはクラスの初期化中に作成され、その後は変更できません。

LogManager クラスは、起動時に java.util.logging.manager システムプロパティーを使用して配置されます。

LogManager はデフォルトで、JRE ディレクトリ内のプロパティーファイル「lib/logging.properties」から初期構成を読み取ります。そのプロパティーファイルを編集すれば、その JRE のすべての使用に対するデフォルトのロギング構成を変更できます。

また、LogManager は初期構成の読み込みをより詳細に制御できる、次の 2 つのシステムプロパティーオプションを使用します。

この 2 つのプロパティーは、Preferences API により、java コマンドに対するコマンド行プロパティーの定義として、または JNI_CreateJavaVM に渡されるシステムプロパティーの定義として設定することができます。

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 オブジェクトのすべてのメソッドはマルチスレッドに対して安全です。

導入されたバージョン:
1.4

フィールドの概要
static String LOGGING_MXBEAN_NAME
          LoggingMXBeanObjectName の文字列表現。
 
コンストラクタの概要
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)
          ロギングプロパティーを再度初期化し、指定されたストリームからログ構成を再度読み込みます。
 void removePropertyChangeListener(PropertyChangeListener l)
          プロパティー変更イベントのイベントリスナーを削除します。
 void reset()
          ログの構成をリセットします。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

LOGGING_MXBEAN_NAME

public static final String LOGGING_MXBEAN_NAME
LoggingMXBeanObjectName の文字列表現。

導入されたバージョン:
1.5
関連項目:
定数フィールド値
コンストラクタの詳細

LogManager

protected LogManager()
protected コンストラクタです。これが protected になっているのは、J2EE コンテナなどのコンテナアプリケーションが、このオブジェクトのサブクラスを作成できるようにするためです。これが public でないのは、LogManager オブジェクトが 1 つしか存在しない状況が想定されているからです。その値を取得するには、Logmanager.getLogManager を呼び出します。

メソッドの詳細

getLogManager

public static LogManager getLogManager()
グローバル LogManager を返します。


addPropertyChangeListener

public void addPropertyChangeListener(PropertyChangeListener l)
                               throws SecurityException
ログのプロパティーが再読み込みされたときに呼び出されるイベントリスナーを追加します。同じイベント Listener の複数のインスタンスを追加すると、プロパティーイベントリスナーテーブル内に複数のエントリが格納されます。

パラメータ:
l - イベントリスナー
例外:
SecurityException - セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持たない場合
NullPointerException - PropertyChangeListener が null の場合

removePropertyChangeListener

public void removePropertyChangeListener(PropertyChangeListener l)
                                  throws SecurityException
プロパティー変更イベントのイベントリスナーを削除します。addPropertyChangeListener を複数回呼び出すことで同じリスナーの複数のインスタンスがリスナーテーブルに追加されていた場合、そのリスナーのすべてのインスタンスをリスナーテーブルから削除するには、removePropertyChangeListener をそれと同じ回数だけ呼び出す必要があります。

指定されたリスナーが見つからない場合は何も行わずに復帰します。

パラメータ:
l - イベントリスナー (null も可)
例外:
SecurityException - セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持たない場合

addLogger

public boolean addLogger(Logger logger)
名前付きロガーを追加します。これは、同じ名前のロガーがすでに登録されている場合、何もせずに false を返します。

Logger のファクトリメソッドは、このメソッドを呼び出して、新規に作成された各 Logger を登録します。

アプリケーションは、この Logger オブジェクトへの独自の参照を保持すべきです。それにより、このオブジェクトがガベージコレクトされるのを防げます。LogManager は弱参照しか保持できません。

パラメータ:
logger - 新しいロガー
戻り値:
引数 logger が正常に登録された場合は true、その名前のロガーがすでに存在する場合は false
例外:
NullPointerException - ロガーの名前が null の場合

getLogger

public Logger getLogger(String name)
名前付きロガーを検出するメソッドです。

信頼できないコードが任意の名前のロガーを作成する場合があるので、このメソッドはセキュリティー上重要なロギング用の Logger の検出には使用しないでください。

パラメータ:
name - ロガーの名前
戻り値:
一致するロガー、または見つからない場合は null

getLoggerNames

public Enumeration<String> getLoggerNames()
既知のロガーの名前の列挙を返します。

注:Logger は新しいクラスがロードされると動的に追加されます。このメソッドは現在登録されているロガーのみについて通知します。

戻り値:
ロガー名の文字列の列挙

readConfiguration

public void readConfiguration()
                       throws IOException,
                              SecurityException
ログのプロパティーを再度初期化してログ構成を再度読み込みます。

起動時に使用されるのと同じ構成プロパティー検索規則が使用されます。このため、ロギングプロパティーの再読み込みは通常、起動時に使用されたのと同じファイルから行われます。

新しい構成ファイルのすべてのログレベルの定義は、ターゲットの Logger がある場合は Logger.setLevel() を使って適用されます。

PropertyChangeEvent はプロパティーが読み込まれてからトリガーされます。

例外:
SecurityException - セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持たない場合
IOException - 構成を読み込むときに入出力の問題が発生した場合

reset

public void reset()
           throws SecurityException
ログの構成をリセットします。

すべての名前付きロガーについて、reset オペレーションはすべての Handler (ルートロガーのものは除く) を削除して閉じ、レベルを null に設定します。ルートロガーのレベルは Level.INFO に設定されます。

例外:
SecurityException - セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持たない場合

readConfiguration

public void readConfiguration(InputStream ins)
                       throws IOException,
                              SecurityException
ロギングプロパティーを再度初期化し、指定されたストリームからログ構成を再度読み込みます。これは java.util.Properties 形式であるべきです。PropertyChangeEvent はプロパティーが読み込まれてからトリガーされます。

新しい構成ファイルのすべてのログレベルの定義は、ターゲットの Logger がある場合は Logger.setLevel() を使って適用されます。

パラメータ:
ins - プロパティーを読み込むストリーム
例外:
SecurityException - セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持たない場合
IOException - ストリームからの読み込みに問題がある場合

getProperty

public String getProperty(String name)
ログのプロパティーの値を返します。そのプロパティーが見つからない場合は、null が返されます。

パラメータ:
name - プロパティー名
戻り値:
プロパティーの値

checkAccess

public void checkAccess()
                 throws SecurityException
現在のコンテキストが信頼されていてロギング構成を変更できるかどうかをチェックします。これには LoggingPermission("control") が必要となります。

このチェックに失敗した場合は SecurityException をスローします。そうでない場合は正常に復帰します。

例外:
SecurityException - セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持たない場合

getLoggingMXBean

public static LoggingMXBean getLoggingMXBean()
ロガーを管理するための LoggingMXBean を返します。LoggingMXBeanplatform MBeanServer メソッドからも取得できます。

戻り値:
LoggingMXBean オブジェクト
導入されたバージョン:
1.5
関連項目:
ManagementFactory

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。