java.lang.Object
java.util.logging.Handler
java.util.logging.StreamHandler
- 直接已知的子类:
-
ConsoleHandler,FileHandler,SocketHandler
基于流的日志记录
Handler。
主要用作实现其他日志 Handler 时的基类或支持类。
LogRecords 被发布到给定的 java.io.OutputStream。
配置: 默认情况下,每个 StreamHandler 都使用以下 LogManager 配置属性进行初始化,其中 <handler-name> 指的是处理程序的完全限定类名。如果未定义属性(或具有无效值),则使用指定的默认值。
- <handler-name>.level 指定
Handler的默认级别(默认为Level.INFO)。 - <handler-name>.filter 指定要使用的
Filter类的名称(默认为无Filter)。 - <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
- 自 JDK 版本:
- 1.4
-
Constructor Summary
ConstructorsConstructorDescription创建一个没有当前输出流的StreamHandler。StreamHandler(OutputStream out, Formatter formatter) 创建一个具有给定Formatter和输出流的StreamHandler。 -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()关闭当前输出流。voidflush()刷新任何缓冲的消息。booleanisLoggable(LogRecord record) 检查此Handler是否实际记录给定的LogRecord。void格式化并发布一个LogRecord。voidsetEncoding(String encoding) 设置(或更改)此Handler使用的字符编码。protected void更改输出流。Methods declared in class java.util.logging.Handler
getEncoding, getErrorManager, getFilter, getFormatter, getLevel, reportError, setErrorManager, setFilter, setFormatter, setLevel
-
Constructor Details
-
StreamHandler
public StreamHandler()创建一个没有当前输出流的StreamHandler。 -
StreamHandler
创建一个具有给定Formatter和输出流的StreamHandler。- 参数:
-
out- 目标输出流 -
formatter- 用于格式化输出的格式化程序
-
-
Method Details
-
setOutputStream
更改输出流。如果存在当前输出流,则会写入
Formatter的尾部字符串,然后刷新和关闭流。然后用新的输出流替换输出流。- 参数:
-
out- 新的输出流。不得为 null。 - 抛出:
-
SecurityException- 如果存在安全管理器且调用者没有LoggingPermission("control")。
-
setEncoding
设置(或更改)此Handler使用的字符编码。应在写入任何
LogRecords到Handler之前设置编码。- 覆盖:
-
setEncoding在类Handler中 - 参数:
-
encoding- 支持的字符编码的名称。可能为 null,表示默认平台编码。 - 抛出:
-
SecurityException- 如果存在安全管理器且调用者没有LoggingPermission("control")。 -
UnsupportedEncodingException- 如果不支持指定的编码。
-
publish
格式化并发布一个LogRecord。StreamHandler首先检查是否有OutputStream,以及给定的LogRecord是否至少具有所需的日志级别。如果没有,则会静默返回。如果有,则调用任何关联的Filter来检查是否应发布记录。如果是,则调用其Formatter来格式化记录,然后将结果写入当前输出流。如果这是要写入给定
OutputStream的第一个LogRecord,则会在写入LogRecord之前将Formatter的“head”字符串写入流。 -
isLoggable
检查此Handler是否实际记录给定的LogRecord。此方法检查
LogRecord是否具有适当的级别以及是否满足任何Filter。如果尚未分配输出流或 LogRecord 为 null,则还将返回 false。- 覆盖:
-
isLoggable在类Handler中 - 参数:
-
record- 一个LogRecord(可能为 null)。 - 返回:
-
如果将记录
LogRecord,则为 true。
-
flush
public void flush()刷新任何缓冲的消息。 -
close
关闭当前输出流。在关闭流之前,将
Formatter的“tail”字符串写入流。此外,如果尚未将Formatter的“head”字符串写入流,则会在“tail”字符串之前写入。- 指定者:
-
close在类Handler中 - 抛出:
-
SecurityException- 如果存在安全管理器且调用者没有 LoggingPermission("control")。
-