- java.lang.Object
-
- java.util.logging.Handler
-
- 已知直接子类:
-
MemoryHandler
,StreamHandler
public abstract class Handler extends Object
一个Handler
对象从需要的日志信息Logger
和出口他们。 例如,它可能会将它们写入控制台或将它们写入文件,或将它们发送到网络日志记录服务,或将它们转发到OS日志或其他任何内容。可以通过执行
Handler
来禁用setLevel(Level.OFF)
并且可以通过执行具有适当级别的setLevel
来重新启用setLevel
。Handler
类通常使用LogManager
属性为设定默认值Handler
的Filter
,Formatter
,和Level
。 请参阅每个具体Handler
类的特定文档。- 从以下版本开始:
- 1.4
-
-
构造方法摘要
构造方法 变量 构造器 描述 protected
Handler()
默认构造函数。
-
方法摘要
所有方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 abstract void
close()
关闭Handler
并释放所有相关资源。abstract void
flush()
刷新任何缓冲输出。String
getEncoding()
返回此Handler
的字符编码。ErrorManager
getErrorManager()
检索此Handler的ErrorManager。Filter
getFilter()
获取当前Filter
这个Handler
。Formatter
getFormatter()
返回Formatter
获取此Handler
。Level
getLevel()
获取日志级别,指定此Handler
将记录哪些消息。boolean
isLoggable(LogRecord record)
检查此Handler
是否实际记录给定的LogRecord
。abstract void
publish(LogRecord record)
发布LogRecord
。protected void
reportError(String msg, 异常 ex, int code)
受保护的便捷方法,向此Handler的ErrorManager报告错误。void
setEncoding(String encoding)
设置此Handler
使用的字符编码。void
setErrorManager(ErrorManager em)
为此处理程序定义ErrorManager。void
setFilter(Filter newFilter)
设置Filter
以控制此Handler
上的输出。void
setFormatter(Formatter newFormatter)
设置Formatter
。void
setLevel(Level newLevel)
设置日志级别,指定此Handler
将记录哪些消息级别。
-
-
-
方法详细信息
-
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
上的输出。对于每个呼叫
publish
的Handler
会调用这个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。
-
-