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 所用的类。

LogRecords 发布到给定 java.io.OutputStream

配置:默认情况下,每个 SocketHandler 都是使用以下 StreamHandler 配置属性执行初始化的。如果未定义属性(或者属性具有无效值),则使用指定的默认值。

从以下版本开始:
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 所用的字符编码。

应在在任何 LogRecords 写入 Handler 之前设置编码。

覆盖:
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 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策