JavaTM Platform
Standard Ed. 6

java.util.logging
クラス Handler

java.lang.Object
  上位を拡張 java.util.logging.Handler
直系の既知のサブクラス:
MemoryHandler, StreamHandler

public abstract class Handler
extends Object

Handler オブジェクトは、Logger からログメッセージを受け取り、それらをエクスポートします。たとえば、このオブジェクトは、コンソールやファイルに書き込み、ネットワークログサービスに送信し、OS ログへの転送などを実行します。

HandlersetLevel(Level.OFF) を実行して使用不可にし、setLevel を適切なレベルで実行して再度使用可能にすることができます。

通常、Handler クラスは、LogManager のプロパティーを使用して HandlerFilterFormatter、および Level のデフォルト値を設定します。各具象 Handler クラスについては、それぞれのドキュメントを参照してください。

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

コンストラクタの概要
protected Handler()
          デフォルトのコンストラクタです。
 
メソッドの概要
abstract  void close()
          Handler を閉じて、関連するすべてのリソースを解放します。
abstract  void flush()
          バッファリングされた出力をフラッシュします。
 String getEncoding()
          この Handler の文字エンコーディングを返します。
 ErrorManager getErrorManager()
          この HandlerErrorManager を取得します。
 Filter getFilter()
          この Handler の現在の Filter を取得します。
 Formatter getFormatter()
          この HandlerFormatter を返します。
 Level getLevel()
          この Handler がどのメッセージをロギングするかを指定するログレベルを取得します。
 boolean isLoggable(LogRecord record)
          この Handler が、指定された LogRecord のログを実際にとるかどうかを調べます。
abstract  void publish(LogRecord record)
          LogRecord を発行します。
protected  void reportError(String msg, Exception ex, int code)
          この Handler の ErrorManager にエラーを通知する簡易 protected 簡易メソッドです。
 void setEncoding(String encoding)
          この Handler が使用する文字エンコーディングを設定します。
 void setErrorManager(ErrorManager em)
          この HandlerErrorManager を定義します。
 void setFilter(Filter newFilter)
          この Handler の出力を制御するFilter を設定します。
 void setFormatter(Formatter newFormatter)
          Formatter を設定します。
 void setLevel(Level newLevel)
          この Handler がどのメッセージレベルをロギングするかを指定するログレベルを設定します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

Handler

protected Handler()
デフォルトのコンストラクタです。結果として得られる Handler は、Level.ALL のログレベルを持ち、FormatterFilter は持ちません。デフォルトの ErrorManager インスタンスが、ErrorManager としてインストールされます。

メソッドの詳細

publish

public abstract void publish(LogRecord record)
LogRecord を発行します。

初期状態では、ロギングの要求は Logger オブジェクトに対して行われ、このオブジェクトは LogRecord を初期化してここに転送しました。

Handler は、必要に応じてメッセージをフォーマットする役割を担います。フォーマット処理にはローカライズも含まれるべきです。

パラメータ:
record - ログイベントの説明。null レコードは何の通知もなく無視され、発行されない

flush

public abstract void flush()
バッファリングされた出力をフラッシュします。


close

public abstract void close()
                    throws SecurityException
Handler を閉じて、関連するすべてのリソースを解放します。

close メソッドは、flush を実行したあとで Handler を閉じます。close の呼び出し後にこの Handler を使用しないようにしてください。メソッド呼び出しを行った場合、その呼び出しは何の通知もなく無視されるか、実行時例外がスローされます。

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

setFormatter

public void setFormatter(Formatter newFormatter)
                  throws SecurityException
Formatter を設定します。この Formatter は、この HandlerLogRecord をフォーマットするために使用されます。

一部の HandlerFormatter を使用しません。その場合、Formatter は記憶されるだけで、使用されません。

パラメータ:
newFormatter - 使用する Formatter (null 以外)
例外:
SecurityException - セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合

getFormatter

public Formatter getFormatter()
この HandlerFormatter を返します。

戻り値:
Formatter (null の場合がある)

setEncoding

public void setEncoding(String encoding)
                 throws SecurityException,
                        UnsupportedEncodingException
この Handler が使用する文字エンコーディングを設定します。

エンコーディングは、LogRecordHandler に書き込まれる前に設定する必要があります。

パラメータ:
encoding - サポートされる文字エンコーディングの名前。null も可能。これはデフォルトのプラットフォームエンコーディングを示す
例外:
SecurityException - セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合
UnsupportedEncodingException - 指定された文字エンコーディングがサポートされていない場合

getEncoding

public String getEncoding()
この Handler の文字エンコーディングを返します。

戻り値:
エンコーディング名。null も可能。これはデフォルトのエンコーディングを使用すべきであることを示す

setFilter

public void setFilter(Filter newFilter)
               throws SecurityException
この Handler の出力を制御するFilter を設定します。

publish の呼び出しごとに、Handler はこの Filter (null でない場合) を呼び出して LogRecord が通知されたか、または破棄されたかを調べます。

パラメータ:
newFilter - Filter オブジェクト (null の場合がある)
例外:
SecurityException - セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合

getFilter

public Filter getFilter()
この Handler の現在の Filter を取得します。

戻り値:
Filter オブジェクト (null の場合がある)

setErrorManager

public void setErrorManager(ErrorManager em)
この HandlerErrorManager を定義します。

ErrorManager の error メソッドは、この Handler を使用中にエラーが発生した場合に呼び出されます。

パラメータ:
em - 新しい ErrorManager
例外:
SecurityException - セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合

getErrorManager

public ErrorManager getErrorManager()
この HandlerErrorManager を取得します。

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

reportError

protected void reportError(String msg,
                           Exception ex,
                           int code)
この Handler の ErrorManager にエラーを通知する簡易 protected 簡易メソッドです。このメソッドがセキュリティーチェックを行わずに ErrorManager を取得および使用することに注意してください。したがって、これは、呼び出し元が特権を持たない可能性がある環境で使用できます。

パラメータ:
msg - 記述文字列 (null の場合がある)
ex - 例外 (null の場合がある)
code - ErrorManager で定義されたエラーコード

setLevel

public void setLevel(Level newLevel)
              throws SecurityException
この Handler がどのメッセージレベルをロギングするかを指定するログレベルを設定します。この値より小さいメッセージレベルは破棄されます。

これは、開発者が多量のロギングをオンに設定することができるようにする一方で、特定の Handler へ送信されるメッセージを制限できるようにするためのものです。

パラメータ:
newLevel - ログレベルの新しい値
例外:
SecurityException - セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合

getLevel

public Level getLevel()
この Handler がどのメッセージをロギングするかを指定するログレベルを取得します。このレベルより小さいメッセージレベルは破棄されます。

戻り値:
ログをとるメッセージレベル

isLoggable

public boolean isLoggable(LogRecord record)
この Handler が、指定された LogRecord のログを実際にとるかどうかを調べます。

このメソッドは、LogRecordLevel が適切かどうか、およびそのレコードが任意の Filter を満足するかどうかをチェックします。これは、場合によっては Handler に固有のその他のチェックも行います。そしてその結果、ハンドラが LogRecord をロギングしない可能性があります。LogRecord が null の場合、これは false を返します。

パラメータ:
record - LogRecord
戻り値:
LogRecord がログをとられる場合は true

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 も参照してください。