- 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。配置:默认情况下,使用以下
LogManager配置属性初始化每个StreamHandler,其中<handler-name>引用处理程序的完全限定类名。 如果未定义属性(或具有无效值),则使用指定的默认值。- <处理程序名> .LEVEL指定了默认级别
Handler(默认为Level.INFO)。 - <handler-name> .filter指定要使用的
Filter类的名称(默认为noFilter)。 - <handler-name> .formatter指定要使用的
Formatter类的名称(默认为java.util.logging.SimpleFormatter)。 - <handler-name> .encoding要使用的字符集编码的名称(默认为默认平台编码)。
例如,
StreamHandler的属性为:- java.util.logging.StreamHandler.level = INFO
- java.util.logging.StreamHandler.formatter = java.util.logging.SimpleFormatter
对于自定义处理程序,例如com.foo.MyHandler,属性将是:
- com.foo.MyHandler.level = INFO
- com.foo.MyHandler.formatter = java.util.logging.SimpleFormatter
- 从以下版本开始:
- 1.4
-
-
构造方法摘要
构造方法 构造器 描述 StreamHandler()创建一个StreamHandler,没有当前输出流。StreamHandler(OutputStream out, Formatter formatter)使用给定的Formatter和输出流创建StreamHandler。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 voidclose()关闭当前输出流。voidflush()刷新所有缓冲的消息。booleanisLoggable(LogRecord record)检查此Handler是否实际记录给定的LogRecord。voidpublish(LogRecord record)格式化并发布LogRecord。voidsetEncoding(String encoding)设置(或更改)此Handler使用的字符编码。protected voidsetOutputStream(OutputStream out)更改输出流。-
声明方法的类 java.util.logging.Handler
getEncoding, getErrorManager, getFilter, getFormatter, getLevel, reportError, setErrorManager, setFilter, setFormatter, setLevel
-
-
-
-
构造方法详细信息
-
StreamHandler
public StreamHandler()
创建一个StreamHandler,没有当前输出流。
-
StreamHandler
public StreamHandler(OutputStream out, Formatter formatter)
使用给定的Formatter和输出流创建StreamHandler。- 参数
-
out- 目标输出流 -
formatter- 用于格式化输出的格式化程序
-
-
方法详细信息
-
setOutputStream
protected void setOutputStream(OutputStream out) throws SecurityException
更改输出流。如果有当前输出流,则写入
Formatter的尾部字符串,并刷新并关闭流。 然后用新输出流替换输出流。- 参数
-
out- 新输出流。 不能为空。 - 异常
-
SecurityException- 如果存在安全管理器且调用者没有LoggingPermission("control")。
-
setEncoding
public void setEncoding(String encoding) throws SecurityException, UnsupportedEncodingException
设置(或更改)此Handler使用的字符编码。之前的任何编码应设置
LogRecords被写入到Handler。- 重写:
-
setEncoding在类Handler - 参数
-
encoding- 支持的字符编码的名称。 可以为null,表示默认的平台编码。 - 异常
-
SecurityException- 如果存在安全管理器且呼叫者没有LoggingPermission("control")。 -
UnsupportedEncodingException- 如果不支持指定的编码。
-
publish
public void publish(LogRecord record)
格式化并发布LogRecord。StreamHandler首先检查是否存在OutputStream以及给定的LogRecord是否至少具有所需的日志级别。 如果没有,它会默默地返回。 如果是,则调用任何关联的Filter来检查是否应该发布记录。 如果是,则调用其Formatter格式化记录,然后将结果写入当前输出流。如果这是第
LogRecord被写入到一个给定的OutputStream,该Formatter了之前的‘头部’字符串写入流LogRecord写入。
-
isLoggable
public boolean isLoggable(LogRecord record)
检查这个Handler是否实际记录给定的LogRecord。此方法检查
LogRecord是否具有适当的级别以及它是否满足任何Filter。 如果尚未分配输出流或LogRecord为null,它也将返回false。- 重写:
-
isLoggable在类Handler - 参数
-
record- aLogRecord - 结果
-
如果将记录
LogRecordtrue。
-
close
public void close() throws SecurityException关闭当前输出流。Formatter的“tail”字符串在关闭之前写入流中。 此外,如果Formatter的“head”字符串尚未写入流,则它将在“tail”字符串之前写入。- Specified by:
-
close在类Handler - 异常
-
SecurityException- 如果存在安全管理器且调用者没有LoggingPermission(“control”)。
-
-