返回介绍

java.util.logging 类 StreamHandler

发布于 2019-10-04 09:51:57 字数 7194 浏览 1033 评论 0 收藏 0

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 配置属性执行初始化的。如果未定义属性(或者属性具有无效值),则使用指定的默认值。

  • java.util.logging.StreamHandler.level 指定 Handler 的默认级别(默认值为 Level.INFO )。
  • java.util.logging.StreamHandler.filter 指定要使用的 Filter 类的名称(默认值非 Filter )。
  • java.util.logging.StreamHandler.formatter 指定要使用的 Formatter (默认值为 java.util.logging.SimpleFormatter )。
  • java.util.logging.StreamHandler.encoding 要使用的字符集编码的名称(默认值为默认平台编码)。
从以下版本开始:
1.4

构造方法摘要
StreamHandler()

创建不带当前输出流的 StreamHandler

StreamHandler(OutputStreamout, Formatterformatter)

创建带给定 Formatter 和输出流的 StreamHandler

方法摘要
voidclose()

关闭当前输出流。

voidflush()

刷新所有缓冲消息。

booleanisLoggable(LogRecordrecord)

检查该 Handler 是否实际记录给定的 LogRecord

voidpublish(LogRecordrecord)

格式化并发布 LogRecord

voidsetEncoding(Stringencoding)

设置(或更改)该 Handler 所用的字符编码。

protected voidsetOutputStream(OutputStreamout)

更改输出流。

从类 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(OutputStreamout,
                     Formatterformatter)
创建带给定 Formatter 和输出流的 StreamHandler
参数:
out - 目标输出流
formatter - 用于格式化输出的 Formatter

方法详细信息

setOutputStream

protected void setOutputStream(OutputStreamout)
                        throws SecurityException
更改输出流。

如果存在当前输出流,则编写 Formatter 的尾部字符串,刷新并关闭流。然后使用新的输出流替换该输出流。

参数:
out - 新输出流。不能为 null。
抛出:
SecurityException - 如果存在安全管理器,且调用方不具有 LoggingPermission("control")

setEncoding

public void setEncoding(Stringencoding)
                 throws SecurityException,
                        UnsupportedEncodingException
设置(或更改)该 Handler 所用的字符编码。

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

覆盖:
Handler 中的 setEncoding
参数:
encoding - 所支持字符编码的名称。可以为 null,以指示默认的平台编码。
抛出:
SecurityException - 如果存在安全管理器,且调用方不具有 LoggingPermission("control")
UnsupportedEncodingException - 如果不支持指定的编码。

publish

public void publish(LogRecordrecord)
格式化并发布 LogRecord

StreamHandler 首先检查是否存在 OutputStream 以及给定的 LogRecord 是否具有所需的最低日志级别。如果没有则默认返回。如果有,则调用所有关联的 Filter 来检查是否应该发布该记录。如果应该发布,则调用 Formatter 来格式化该记录,然后将结果写入当前输出流。

如果这是要写入给定 OutputStream 的第一个 LogRecord ,则在写入 LogRecord 之前首先将 Formatter 的“头部”字符串写入流。

指定者:
Handler 中的 publish
参数:
record - 对日志事件的描述。默认忽略 null 记录,并且不进行发布。

isLoggable

public boolean isLoggable(LogRecordrecord)
检查该 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")。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文