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

クラス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

      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で使用される文字エンコーディングを設定します。

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

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

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

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

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

      定義:
      publish、クラスHandler
      パラメータ:
      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() throws SecurityException
      現在の出力ストリームを閉じます。

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

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