Module  java.logging
软件包  java.util.logging

Class Handler

  • 已知直接子类:
    MemoryHandlerStreamHandler


    public abstract class Handler
    extends Object
    一个Handler对象从需要日志消息Logger和出口他们。 例如,可以将它们写入控制台或将其写入文件,或者将其发送到网络日志记录服务,或将其转发到操作系统日志或其他任何操作系统。

    A Handler可以通过执行setLevel(Level.OFF)禁用,并且可以通过执行适当级别的setLevel重新启用。

    Handler类通常使用LogManager属性来用于设置默认值的HandlerFilterFormatter ,和Level 请参阅每个具体的具体文档Handler课程。

    从以下版本开始:
    1.4
    • 构造方法详细信息

      • Handler

        protected Handler​()
        默认构造函数。 得到的Handler的日志级别为Level.ALL ,不是Formatter ,而不是Filter 默认ErrorManager实例作为ErrorManager安装。
    • 方法详细信息

      • publish

        public abstract void publish​(LogRecord record)
        发表LogRecord

        日志记录请求初始化为一个Logger对象,初始化了LogRecord并在此转发。

        Handler负责格式化消息,何时和如有必要。 格式应包括本地化。

        参数
        record - 日志事件的描述。 空值记录被默认忽略并且未发布
      • flush

        public abstract void flush​()
        冲洗任何缓冲输出。
      • close

        public abstract void close​()
                            throws SecurityException
        关闭Handler并释放所有相关资源。

        关闭方法将执行flush ,然后关闭Handler 在关闭之后,这个Handler应该不再被使用了。 方法调用可能会被忽略或可能抛出运行时异常。

        异常
        SecurityException - 如果安全管理器存在,并且呼叫者没有 LoggingPermission("control")
      • setFormatter

        public void setFormatter​(Formatter newFormatter)
                          throws SecurityException
        设置Formatter 这个Formatter将用于格式LogRecords为这Handler

        有些Handlers可能不使用Formatters ,在这种情况下, Formatter将被记住,但不被使用。

        参数
        newFormatter - 要使用的 Formatter (可能不为空)
        异常
        SecurityException - 如果存在安全管理员,并且呼叫者没有 LoggingPermission("control")
      • getFormatter

        public Formatter getFormatter​()
        返回 Formatter为这 Handler
        结果
        Formatter (可能为null)。
      • setEncoding

        public void setEncoding​(String encoding)
                         throws SecurityException,
                                UnsupportedEncodingException
        设置Handler使用的字符编码。

        之前的任何编码应设置LogRecords被写入Handler

        参数
        encoding - 支持的字符编码的名称。 可以为空,表示默认的平台编码。
        异常
        SecurityException - 如果存在安全管理员,并且呼叫方没有 LoggingPermission("control")
        UnsupportedEncodingException - 如果不支持命名编码。
      • getEncoding

        public String getEncoding​()
        返回此 Handler的字符编码。
        结果
        编码名称。 可能为null,表示应使用默认编码。
      • setFilter

        public void setFilter​(Filter newFilter)
                       throws SecurityException
        设置Filter以控制此Handler输出。

        对于每个呼叫publishHandler会调用这个Filter (如果非空),以检查是否LogRecord应发布或放弃。

        参数
        newFilter - a Filter对象(可能为空)
        异常
        SecurityException - 如果安全管理器存在,并且呼叫者没有 LoggingPermission("control")
      • getFilter

        public Filter getFilter​()
        获取当前的 Filter为这 Handler
        结果
        一个 Filter对象(可能为null)
      • setErrorManager

        public void setErrorManager​(ErrorManager em)
        为此处理程序定义一个ErrorManager。

        如果在使用此处理程序时发生任何错误,将会调用ErrorManager的“错误”方法。

        参数
        em - 新的ErrorManager
        异常
        SecurityException - 如果安全管理器存在,并且呼叫者没有 LoggingPermission("control")
      • getErrorManager

        public ErrorManager getErrorManager​()
        检索此处理程序的ErrorManager。
        结果
        该处理程序的ErrorManager
        异常
        SecurityException - 如果安全管理器存在,并且主叫方没有 LoggingPermission("control")
      • reportError

        protected void reportError​(String msg,
                                   异常 ex,
                                   int code)
        受保护的方便方法来向此处理程序的ErrorManager报告错误。 请注意,此方法在不进行安全检查的情况下检索并使用ErrorManager。 因此,它可以在呼叫者可能是非特权的环境中使用。
        参数
        msg - 描述性字符串(可以为空)
        ex - 异常(可能为空)
        code - ErrorManager中定义的错误代码
      • setLevel

        public void setLevel​(Level newLevel)
                      throws SecurityException
        设置日志级别,指定Handler记录哪些消息级别。 消息级别低于此值将被丢弃。

        目的是允许开发人员打开大量日志记录,但是限制发送到某些Handlers的消息。

        参数
        newLevel - 日志级别的新值
        异常
        SecurityException - 如果安全管理器存在,并且主叫方没有 LoggingPermission("control")
      • getLevel

        public Level getLevel​()
        获取日志级别,指定Handler记录哪些消息。 消息级别低于此级别将被丢弃。
        结果
        正在记录的消息级别。
      • isLoggable

        public boolean isLoggable​(LogRecord record)
        检查这个Handler是否会实际记录给定的LogRecord

        此方法检查LogRecord是否适合Level以及是否满足任何Filter 它也可能使其他Handler具体检查可能会阻止处理程序记录LogRecord 如果LogRecord为null,则返回false。

        参数
        record - a LogRecord
        结果
        如果要记录 LogRecord true。