- 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。配置:默认情况下,每个
StreamHandler都使用以下LogManager配置属性进行初始化,其中<handler-name>引用处理程序的完全限定类名。 如果未定义属性(或具有无效值),则使用指定的默认值。- <处理程序名> .LEVEL指定了默认级别
Handler(默认为Level.INFO)。 - <处理程序名> .filter指定的名称
Filter类中使用(默认为无Filter)。 - <处理程序名> .formatter指定的名称
Formatter类中使用(默认为java.util.logging.SimpleFormatter)。 - <handler-name>。编码要使用的字符集编码的名称(默认为默认平台编码)。
例如,
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
-
-
构造方法摘要
构造方法 Constructor 描述 StreamHandler()创建一个StreamHandler,没有当前的输出流。StreamHandler(OutputStream out, Formatter formatter)创建一个StreamHandler与给定的Formatter和输出流。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 voidclose()关闭当前的输出流。voidflush()刷新任何缓冲的消息。booleanisLoggable(LogRecord record)检查这个Handler是否会实际记录给定的LogRecord。voidpublish(LogRecord record)格式化并发布一个LogRecord。voidsetEncoding(String encoding)设置(或更改)此Handler使用的字符编码。protected voidsetOutputStream(OutputStream out)更改输出流。-
Methods inherited from class 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)
创建一个StreamHandler与给定的Formatter和输出流。- 参数
-
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- 支持的字符编码的名称。 可以为空,表示默认的平台编码。 - 异常
-
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为空,它也将返回false。- 重写:
-
isLoggable在Handler - 参数
-
record- aLogRecord - 结果
-
如果将记录
LogRecordtrue。
-
close
public void close() throws SecurityException关闭当前的输出流。Formatter的“尾”字符串在关闭之前写入流中。 另外,如果Formatter的“头”字符串还没有被写入到流中,它将被写在“尾”字符串之前。- Specified by:
-
close在Handler - 异常
-
SecurityException- 如果存在安全管理员,并且主叫方没有LoggingPermission(“控制”)。
-
-