Module java.logging

Class SocketHandler


public class SocketHandler extends StreamHandler
简单的网络日志记录处理程序

LogRecords被发布到网络流连接。默认情况下,使用XMLFormatter类进行格式化。

配置:默认情况下,每个SocketHandler都使用以下LogManager配置属性进行初始化,其中<handler-name>是处理程序的完全限定类名。如果未定义属性(或具有无效值),则使用指定的默认值。

  • <handler-name>.level指定Handler的默认级别(默认为Level.ALL)。
  • <handler-name>.filter指定要使用的Filter类的名称(默认为无Filter)。
  • <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后会被刷新。

自 JDK 版本:
1.4
  • Constructor Details

    • SocketHandler

      public SocketHandler() throws IOException
      创建一个SocketHandler,仅使用LogManager属性(或其默认值)。
      抛出:
      IllegalArgumentException - 如果主机或端口无效或未指定为LogManager属性。
      IOException - 如果无法连接到目标主机和端口。
    • SocketHandler

      public SocketHandler(String host, int port) throws IOException
      使用指定的主机和端口构造一个SocketHandlerSocketHandler根据LogManager属性(或其默认值)进行配置,只是使用给定的目标主机和端口参数。如果主机参数为空但不是null字符串,则使用本地主机。
      参数:
      host - 目标主机。
      port - 目标端口。
      抛出:
      IllegalArgumentException - 如果主机或端口无效。
      IOException - 如果无法连接到目标主机和端口。
  • Method Details

    • close

      public void close() throws SecurityException
      关闭此输出流。
      覆盖:
      close 在类 StreamHandler
      抛出:
      SecurityException - 如果存在安全管理器且调用者没有LoggingPermission("control")
    • publish

      public void publish(LogRecord record)
      格式化并发布一个LogRecord
      覆盖:
      publish 在类 StreamHandler
      参数:
      record - 日志事件的描述。空记录将被静默忽略并不会被发布。