public class StreamHandler extends Handler
这主要是作为用于实现其他日志记录的基类或支持类Handlers 。
LogRecords发表于给定的java.io.OutputStream 。
配置:默认情况下,每个StreamHandler使用以下LogManager 配置属性进行初始化,其中<handler-name>引用处理程序的完全限定类名。 如果未定义属性(或具有无效值),则使用指定的默认值。
例如,StreamHandler的StreamHandler
将是:
对于自定义处理程序,例如com.foo.MyHandler,属性将是:
Constructor and Description |
---|
StreamHandler()
创建一个
StreamHandler ,没有当前的输出流。
|
StreamHandler(OutputStream out, Formatter formatter)
创建一个
StreamHandler与给定的
Formatter和输出流。
|
Modifier and Type | Method and Description |
---|---|
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
- 用于格式化输出的格式化器
protected void setOutputStream(OutputStream out) throws SecurityException
如果有当前的输出流,则写入Formatter的尾字符串,并且流被刷新并关闭。 然后输出流被替换为新的输出流。
out
- 新输出流。
可能不为空
SecurityException
- 如果安全管理器存在,并且呼叫者没有
LoggingPermission("control") 。
public void setEncoding(String encoding) throws SecurityException, UnsupportedEncodingException
之前的任何LogRecords写入到Handler的编码应设置。
setEncoding
在类别
Handler
encoding
- 支持的字符编码的名称。
可以为空,表示默认的平台编码。
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为空,它也将返回false。
isLoggable
在
Handler
record
- a
LogRecord
public void close() throws SecurityException
Formatter的“尾”字符串在关闭之前被写入流中。 另外,如果Formatter的“头”字符串还没有被写入到流中,它将被写在“尾”字符串之前。
close
在
Handler
SecurityException
- 如果安全管理器存在,并且调用者没有LoggingPermission(“control”)。