JavaTM Platform
Standard Ed. 6

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 の実装に使用される基底クラスまたはサポートクラスとして使用されます。

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

構成:StreamHandler はデフォルトで、次の LogManager 構成プロパティーを使って初期化されます。プロパティーが未定義である場合 (または無効な値を持つ場合)、指定されたデフォルト値が使用されます。

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

コンストラクタの概要
StreamHandler()
          現在の出力ストリームを持たない StreamHandler を作成します。
StreamHandler(OutputStream out, Formatter formatter)
          指定された Formatter と出力ストリームを持つ StreamHandler を作成します。
 
メソッドの概要
 void close()
          現在の出力ストリームを閉じます。
 void flush()
          すべてのバッファーされたメッセージをフラッシュします。
 boolean isLoggable(LogRecord record)
          この Handler が、指定された LogRecord のログを実際にとるかどうかを調べます。
 void publish(LogRecord record)
          LogRecord をフォーマットして発行します。
 void setEncoding(String encoding)
          この Handler が使用する文字エンコーディングを設定または変更します。
protected  void setOutputStream(OutputStream out)
          出力ストリームを変更します。
 
クラス java.util.logging.Handler から継承されたメソッド
getEncoding, getErrorManager, getFilter, getFormatter, getLevel, reportError, setErrorManager, setFilter, setFormatter, setLevel
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

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 に書き込まれる前に設定する必要があります。

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

publish

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

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

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

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

isLoggable

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

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

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

flush

public void flush()
すべてのバッファーされたメッセージをフラッシュします。

定義:
クラス Handler 内の flush

close

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

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

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

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