クラスStreamHandler

java.lang.Object
java.util.logging.Handler
java.util.logging.StreamHandler
直系の既知のサブクラス:
ConsoleHandler, FileHandler, SocketHandler

public class StreamHandler extends Handler
ストリーム・ベースのロギングHandler

これは主に、他のロギングHandlersの実装に使用されるベース・クラスまたはサポート・クラスとして意図されています。

LogRecordsは、指定されたjava.io.OutputStreamに公開されます。

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

  • <handler-name>.levelは、Handler (デフォルトはLevel.INFOです)のデフォルト・レベルを指定します。
  • <handler-name>.filterは、(デフォルトはFilterではありません)を使用するFilterクラスの名前を指定します。
  • <handler-name>.formatterは、(デフォルトはjava.util.logging.SimpleFormatterです)を使用するFormatterクラスの名前を指定します。
  • <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を作成します。
    指定されたFormatterおよび出力ストリームでStreamHandlerを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    現在の出力ストリームを閉じます。
    void
    すべてのバッファされたメッセージをフラッシュします。
    boolean
    このHandlerが特定のLogRecordを実際にログに記録するかどうかを確認します。
    void
    LogRecordを書式設定して公開します。
    void
    setEncoding(String encoding)
    (または変更)に、このHandlerで使用される文字エンコーディングを設定します。
    protected void
    出力ストリームを変更します。

    クラス Handlerで宣言されたメソッド

    getEncoding, getErrorManager, getFilter, getFormatter, getLevel, reportError, setErrorManager, setFilter, setFormatter, setLevel
    修飾子と型
    メソッド
    説明
    このHandlerの文字エンコーディングを返します。
    このHandlerのErrorManagerを取得します。
    このHandlerの現在のFilterを取得します。
    このHandlerFormatterを返します。
    このHandlerによってログに記録されるメッセージを指定するログ・レベルを取得します。
    protected void
    reportError(String msg, Exception ex, int code)
    このHandlerのErrorManagerにエラーを通知する簡易protected簡易メソッドです。
    void
    このHandlerのErrorManagerを定義します。
    void
    setFilter(Filter newFilter)
    Filterを設定して、このHandlerの出力を制御します。
    void
    setFormatter(Formatter newFormatter)
    Formatterを設定します。
    void
    setLevel(Level newLevel)
    このHandlerによってログに記録されるメッセージ・レベルを指定するログ・レベルを設定します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • StreamHandler

      public StreamHandler()
      現在の出力ストリームなしで、StreamHandlerを作成します。
    • StreamHandler

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

    • setOutputStream

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

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

      パラメータ:
      out - 新しい出力ストリーム。 nullは不可。
    • setEncoding

      public void setEncoding(String encoding) throws UnsupportedEncodingException
      (または変更)に、このHandlerで使用される文字エンコーディングを設定します。

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

      オーバーライド:
      setEncoding、クラスHandler
      パラメータ:
      encoding - サポートされる文字エンコーディングの名前。 nullも可能。これはデフォルトのプラットフォーム・エンコーディングを示す
      スロー:
      UnsupportedEncodingException - 指定された文字エンコーディングがサポートされていない場合。
    • publish

      public void publish(LogRecord record)
      LogRecordを書式設定して公開します。

      StreamHandlerは、最初にOutputStreamがあるかどうか、および指定されたLogRecordに少なくとも必要なログ・レベルがあるかどうかを確認します。 そうでない場合、これは何の通知もなく戻ります。 その場合、関連するFilterをコールして、レコードを公開する必要があるかどうかを確認します。 その場合は、Formatterをコールしてレコードをフォーマットし、結果を現在の出力ストリームに書き込みます。

      これが特定のOutputStreamに書き込まれる最初のLogRecordである場合、Formatterの"ヘッド"文字列は、LogRecordが書き込まれる前にストリームに書き込まれます。

      定義:
      publish、クラスHandler
      実装要件:
      このメソッドは、LogRecordの書式設定中にロックを取得することを避けますが、出力ストリームへの書込み時にthisインスタンスが同期されます。 デッドロックのリスクを回避するために、サブクラスはsuper.publish()のコール中にロックを保持できません。 具体的には、サブクラスがsuper.publish()をコールする場合、オーバーライドされたpublish()メソッドをsynchronizedとして定義しないでください。
      パラメータ:
      record - ログ・イベントの説明。 nullレコードは何の通知もなく無視され、発行されない
    • isLoggable

      public boolean isLoggable(LogRecord record)
      このHandlerが特定のLogRecordを実際にログに記録するかどうかを確認します。

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

      オーバーライド:
      isLoggable、クラスHandler
      パラメータ:
      record - LogRecord (nullの場合がある)。
      戻り値:
      LogRecordがログに記録される場合はtrue。
    • flush

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

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

      Formatterの"tail"文字列は、クローズする前にストリームに書き込まれます。 また、Formatterの"ヘッド"文字列がストリームにまだ書き込まれていない場合は、"tail"文字列の前に書き込まれます。

      定義:
      close、クラスHandler