|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
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 配置属性执行初始化的。如果未定义属性(或者属性具有无效值),则使用指定的默认值。
- 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(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 的“头部”字符串写入流。
-
- 参数:
-
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()
close
public void close() throws SecurityException
-
关闭当前输出流。
在关闭前,将 Formatter 的“尾部”字符串写入流。此外,如果尚未将 Formatter 的“头部”字符串写入流,则将其写入“尾部”字符串之前。
-
- 抛出:
-
SecurityException
- 如果存在安全管理器,且调用方不具有 LoggingPermission("control")。 -
SecurityException
- 如果存在安全管理器,且调用方不具有 LoggingPermission("control")。