public class StreamHandler extends Handler
これは、主としてほかのログHandlerの実装に使用される基底クラスまたはサポート・クラスとして使用されます。
LogRecordは指定されたjava.io.OutputStreamに通知されます。
構成: デフォルトで各StreamHandlerは次のLogManager構成プロパティを使用して初期化されます。ここで<handler-name>はハンドラの完全修飾クラス名を示します。プロパティが未定義である場合(または無効な値を持つ場合)、指定されたデフォルト値が使用されます。
たとえば、StreamHandler
のプロパティは次のようになります。
カスタム・ハンドラ(例: com.foo.MyHandler)の場合、プロパティは次のようになります。
コンストラクタと説明 |
---|
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)
出力ストリームを変更します。
|
getEncoding, getErrorManager, getFilter, getFormatter, getLevel, reportError, setErrorManager, setFilter, setFormatter, setLevel
public StreamHandler()
public StreamHandler(OutputStream out, Formatter formatter)
out
- ターゲット出力ストリームformatter
- 出力のフォーマットに使用されるFormatterprotected void setOutputStream(OutputStream out) throws SecurityException
現在の出力ストリームが存在する場合、Formatterの末尾文字列が書き込まれ、ストリームがフラッシュおよびクローズされます。次に、その出力ストリームが新しい出力ストリームで置き換えられます。
out
- 新しい出力ストリーム。nullは不可SecurityException
- セキュリティ・マネージャが存在する場合で、呼出し元がLoggingPermission("control")を持っていない場合。public void setEncoding(String encoding) throws SecurityException, UnsupportedEncodingException
エンコーディングは、LogRecordがHandlerに書き込まれる前に設定してください。
setEncoding
、クラス: Handler
encoding
- サポートされる文字エンコーディングの名前。nullも可能。これはデフォルトのプラットフォーム・エンコーディングを示すSecurityException
- セキュリティ・マネージャが存在する場合で、呼出し元がLoggingPermission("control")を持っていない場合。UnsupportedEncodingException
- 指定された文字エンコーディングがサポートされていない場合。public void publish(LogRecord record)
StreamHandlerはまず、OutputStreamが存在するかどうかと、指定されたLogRecordのレベルが要求されるログ・レベル以上かどうかをチェックします。そうでない場合、これは何の通知もなく戻ります。そうである場合、これは、関連付けられた任意のFilterを呼び出すことで、そのレコードを発行すべきかどうかをチェックします。そうである場合、Formatterを呼び出してレコードをフォーマットし、結果を現在の出力ストリームに書き込みます。
これが指定されたOutputStreamに書き込まれる最初のLogRecordの場合、LogRecordが書き込まれる前にFormatterの「先頭」の文字列がストリームに書き込まれます。
public boolean isLoggable(LogRecord record)
このメソッドは、LogRecordのレベルが適切かどうか、およびそのレコードが任意のFilterを満足するかどうかをチェックします。これは、出力ストリームがまだ割り当てられていないか、LogRecordがnullである場合も、falseを返します。
isLoggable
、クラス: Handler
record
- LogRecordpublic void close() throws SecurityException
ストリームが閉じられる前に、Formatterの「末尾」文字列がストリームに書き込まれます。さらに、Formatterの「先頭」文字列がストリームにまだ書き込まれていない場合は、それが「末尾」文字列の前に書き込まれます。
close
、クラス: Handler
SecurityException
- セキュリティ・マネージャが存在する場合で、呼出し元がLoggingPermission("control")を持っていない場合。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.