モジュール java.logging
パッケージ java.util.logging

クラスStreamHandler

  • 直系の既知のサブクラス:
    ConsoleHandler, FileHandler, SocketHandler


    public class StreamHandler
    extends Handler
    ストリームに基づくログHandlerです。

    これは、主としてほかのログHandlerの実装に使用される基底クラスまたはサポート・クラスとして使用されます。

    LogRecordは指定されたjava.io.OutputStreamに通知されます。

    構成: デフォルトで各StreamHandlerは次のLogManager構成プロパティを使用して初期化されます。ここで<handler-name>はハンドラの完全修飾クラス名を示します。 プロパティが未定義である場合(または無効な値を持つ場合)、指定されたデフォルト値が使用されます。

    • <handler-name>.levelはHandlerのデフォルト・レベルを指定します(デフォルトはLevel.INFO)。
    • <handler-name>.filterは使用するFilterクラスの名前を指定します(デフォルトはFilterなし)。
    • <handler-name>.formatterは使用するFormatterクラスの名前を指定します(デフォルトはjava.util.logging.SimpleFormatter)。
    • <handler-name>.encodingは使用する文字セット・エンコーディングの名前を指定します(デフォルトは、デフォルト・プラットフォームのエンコーディング)。

    たとえば、StreamHandlerのプロパティは次のようになります。

    • java.util.logging.StreamHandler.level=INFO
    • java.util.logging.StreamHandler.formatter=java.util.logging.SimpleFormatter

    カスタム・ハンドラ(例: com.foo.MyHandler)の場合、プロパティは次のようになります。

    • com.foo.MyHandler.level=INFO
    • com.foo.MyHandler.formatter=java.util.logging.SimpleFormatter
    導入されたバージョン:
    1.4
    • コンストラクタの詳細

      • StreamHandler

        public StreamHandler​()
        現在の出力ストリームを持たないStreamHandlerを作成します。
      • StreamHandler

        public StreamHandler​(OutputStream out,
                             Formatter formatter)
        指定されたFormatterと出力ストリームを持つStreamHandlerを作成します。
        パラメータ:
        out - ターゲット出力ストリーム
        formatter - 出力のフォーマットに使用されるFormatter
    • メソッドの詳細

      • setOutputStream

        protected void setOutputStream​(OutputStream out)
                                throws SecurityException
        出力ストリームを変更します。

        現在の出力ストリームが存在する場合、Formatterの末尾文字列が書き込まれ、ストリームがフラッシュおよびクローズされます。 次に、その出力ストリームが新しい出力ストリームで置き換えられます。

        パラメータ:
        out - 新しい出力ストリーム。 nullは不可
        例外:
        SecurityException - セキュリティ・マネージャが存在する場合で、呼出し元がLoggingPermission("control")を持っていない場合。
      • setEncoding

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

        エンコーディングは、LogRecordHandlerに書き込まれる前に設定してください。

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

        public void publish​(LogRecord record)
        LogRecordをフォーマットして発行します。

        StreamHandlerはまず、OutputStreamが存在するかどうかと、指定されたLogRecordのレベルが要求されるログ・レベル以上かどうかをチェックします。 そうでない場合、これは何の通知もなく戻ります。 そうである場合、これは、関連付けられた任意のFilterを呼び出すことで、そのレコードを発行すべきかどうかをチェックします。 そうである場合、Formatterを呼び出してレコードをフォーマットし、結果を現在の出力ストリームに書き込みます。

        これが指定されたOutputStreamに書き込まれる最初のLogRecordの場合、LogRecordが書き込まれる前にFormatterの先頭の文字列がストリームに書き込まれます。

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

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

        このメソッドは、LogRecordのレベルが適切かどうか、およびそのレコードが任意のFilterを満足するかどうかをチェックします。 これは、出力ストリームがまだ割り当てられていないか、LogRecordがnullである場合も、falseを返します。

        オーバーライド:
        isLoggable、クラス: Handler
        パラメータ:
        record - LogRecord
        戻り値:
        LogRecordがログをとられる場合はtrue。
      • flush

        public void flush​()
        すべてのバッファされたメッセージをフラッシュします。
        定義:
        flush、クラス: Handler
      • close

        public void close​()
                   throws SecurityException
        現在の出力ストリームを閉じます。

        ストリームが閉じられる前に、Formatterの末尾文字列がストリームに書き込まれます。 さらに、Formatterの先頭文字列がストリームにまだ書き込まれていない場合は、それが末尾文字列の前に書き込まれます。

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