- java.lang.Object
-
- java.util.logging.Handler
-
- java.util.logging.StreamHandler
-
- java.util.logging.SocketHandler
-
public class SocketHandlerextends StreamHandler
简单的网络日志记录Handler
。LogRecords
发布到网络流连接。 默认情况下,XMLFormatter
类用于格式化。配置:默认情况下,使用以下
LogManager
配置属性初始化每个SocketHandler
,其中<handler-name>
引用处理程序的完全限定类名。 如果未定义属性(或具有无效值),则使用指定的默认值。- <处理程序名> .LEVEL指定了默认级别
Handler
(默认为Level.ALL
)。 - <handler-name> .filter指定要使用的
Filter
类的名称(默认为noFilter
)。 - <handler-name> .formatter指定要使用的
Formatter
类的名称(默认为java.util.logging.XMLFormatter
)。 - <handler-name> .encoding要使用的字符集编码的名称(默认为默认平台编码)。
- <handler-name> .host指定要连接的目标主机名(无默认值)。
- <handler-name> .port指定要使用的目标TCP端口(无默认值)。
例如,
SocketHandler
的属性为:- java.util.logging.SocketHandler.level = INFO
- java.util.logging.SocketHandler.formatter = java.util.logging.SimpleFormatter
对于自定义处理程序,例如com.foo.MyHandler,属性将是:
- com.foo.MyHandler.level = INFO
- com.foo.MyHandler.formatter = java.util.logging.SimpleFormatter
输出IO流被缓冲,但在写入每个
LogRecord
后刷新。- 从以下版本开始:
- 1.4
- <处理程序名> .LEVEL指定了默认级别
-
-
构造方法摘要
构造方法 构造器 描述 SocketHandler()
创建SocketHandler
,仅使用LogManager
属性(或其默认值)。SocketHandler(String host, int port)
使用指定的主机和端口构造SocketHandler
。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 void
close()
关闭此输出流。void
publish(LogRecord record)
格式化并发布LogRecord
。-
声明方法的类 java.util.logging.StreamHandler
flush, isLoggable, setEncoding, setOutputStream
-
声明方法的类 java.util.logging.Handler
getEncoding, getErrorManager, getFilter, getFormatter, getLevel, reportError, setErrorManager, setFilter, setFormatter, setLevel
-
-
-
-
构造方法详细信息
-
SocketHandler
public SocketHandler() throws IOException
创建SocketHandler
,仅使用LogManager
属性(或其默认值)。- 异常
-
IllegalArgumentException
- 如果主机或端口无效或未指定为LogManager属性。 -
IOException
- 如果我们无法连接到目标主机和端口。
-
SocketHandler
public SocketHandler(String host, int port) throws IOException
使用指定的主机和端口构造SocketHandler
。SocketHandler
基于LogManager
属性(或其默认值)进行配置,但使用给定的目标主机和端口参数除外。 如果host参数为空,但不是null String,则使用localhost。- 参数
-
host
- 目标主机。 -
port
- 目标端口。 - 异常
-
IllegalArgumentException
- 如果主机或端口无效。 -
IOException
- 如果我们无法连接到目标主机和端口。
-
-
方法详细信息
-
close
public void close() throws SecurityException
关闭此输出流。- 重写:
-
close
在类StreamHandler
- 异常
-
SecurityException
- 如果存在安全管理器且呼叫者没有LoggingPermission("control")
。
-
publish
public void publish(LogRecord record)
格式化并发布LogRecord
。- 重写:
-
publish
在类StreamHandler
- 参数
-
record
- 日志事件的描述。 静默忽略空记录,不会发布
-
-