模块  java.logging
软件包  java.util.logging

Class Handler

  • 已知直接子类:
    MemoryHandlerStreamHandler

    public abstract class Handler
    extends Object
    一个Handler对象从需要的日志信息Logger和出口他们。 例如,它可能会将它们写入控制台或将它们写入文件,或将它们发送到网络日志记录服务,或将它们转发到OS日志或其他任何内容。

    可以通过执行Handler来禁用setLevel(Level.OFF)并且可以通过执行具有适当级别的setLevel来重新启用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并释放所有相关资源。

        close方法将执行flush ,然后关闭Handler 关闭后已经调用了这个Handler应该不再使用了。 方法调用可以被静默忽略,也可能抛出运行时异常。

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

        public void setFormatter​(Formatter newFormatter)
                          throws SecurityException
        设置Formatter Formatter将用于格式化LogRecords以获取此Handler

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

        参数
        newFormatter - 要使用的 Formatter (可能不为null)
        异常
        SecurityException - 如果存在安全管理器且调用者没有 LoggingPermission("control")
      • getFormatter

        public Formatter getFormatter()
        返回 Formatter以获取此 Handler
        结果
        Formatter (可能为null)。
      • setEncoding

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

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

        参数
        encoding - 支持的字符编码的名称。 可以为null,表示默认的平台编码。
        异常
        SecurityException - 如果存在安全管理器且调用者没有 LoggingPermission("control")
        UnsupportedEncodingException - 如果不支持指定的编码。
      • getEncoding

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

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

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

        参数
        newFilter - Filter对象(可以为null)
        异常
        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()
        检索此Handler的ErrorManager。
        结果
        此Handler的ErrorManager
        异常
        SecurityException - 如果存在安全管理器且调用者没有 LoggingPermission("control")
      • reportError

        protected void reportError​(String msg,
                                   异常 ex,
                                   int code)
        受保护的便捷方法,向此Handler的ErrorManager报告错误。 请注意,此方法检索并使用ErrorManager而不进行安全检查。 因此,它可以在呼叫者可能没有特权的环境中使用。
        参数
        msg - 描述性字符串(可以为null)
        ex - 异常(可以为null)
        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 - LogRecord
        结果
        如果将记录 LogRecord true。