モジュール java.logging
パッケージ 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​()
      デフォルトのコンストラクタです。
    • コンストラクタの詳細

      • 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)
        このHandlerのErrorManagerを定義します。

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

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

        public ErrorManager getErrorManager​()
        このHandlerのErrorManagerを取得します。
        戻り値:
        このハンドラのErrorManager
        例外:
        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。