java.lang.Object
java.util.logging.Handler
- 直接已知的子类:
-
MemoryHandler
,StreamHandler
一个
Handler
对象接收来自Logger
的日志消息并将它们导出。例如,它可以将它们写入控制台、写入文件、发送到网络日志服务、转发到操作系统日志等等。
Handler
可以通过执行setLevel(Level.OFF)
来禁用,并且可以通过使用适当级别的setLevel
来重新启用。
Handler
类通常使用LogManager
属性为Handler
的Filter
、Formatter
和Level
设置默认值。请参阅每个具体Handler
类的特定文档。
- 自版本:
- 1.4
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionabstract void
close()
关闭Handler
并释放所有相关资源。abstract void
flush()
刷新任何缓冲输出。返回此Handler
的字符编码。检索此Handler的ErrorManager。获取此Handler
的当前Filter
。返回此Handler
的Formatter
。getLevel()
获取指定将由此Handler
记录的消息的日志级别。boolean
isLoggable
(LogRecord record) 检查此Handler
是否实际记录给定的LogRecord
。abstract void
发布一个LogRecord
。protected void
reportError
(String msg, Exception ex, int code) 保护方便方法,向此Handler的ErrorManager报告错误。void
setEncoding
(String encoding) 设置此Handler
使用的字符编码。void
为此Handler定义一个ErrorManager。void
设置一个Filter
以控制此Handler
上的输出。void
setFormatter
(Formatter newFormatter) 设置一个Formatter
。void
设置指定将由此Handler
记录的消息级别。
-
Constructor Details
-
Handler
protected Handler()默认构造函数。生成的Handler
具有Level.ALL
的日志级别,没有Formatter
和Filter
。默认的ErrorManager
实例被安装为ErrorManager
。
-
-
Method Details
-
publish
发布一个LogRecord
。最初将日志请求发送到
Logger
对象,该对象初始化LogRecord
并将其转发到这里。Handler
负责在必要时格式化消息。格式化应包括本地化。- 参数:
-
record
- 日志事件的描述。空记录将被静默忽略并不会被发布。
-
flush
public abstract void flush()刷新任何缓冲输出。 -
close
关闭Handler
并释放所有相关资源。关闭方法将执行
flush
,然后关闭Handler
。调用close后,不应再使用此Handler
。方法调用可能会被静默忽略,也可能会抛出运行时异常。- 抛出:
-
SecurityException
- 如果存在安全管理器且调用者没有LoggingPermission("control")
。
-
setFormatter
设置一个Formatter
。此Formatter
将用于为此Handler
格式化LogRecords
。某些
Handlers
可能不使用Formatters
,在这种情况下,Formatter
将被记住,但不会被使用。- 参数:
-
newFormatter
- 要使用的Formatter
(不能为空) - 抛出:
-
SecurityException
- 如果存在安全管理器且调用者没有LoggingPermission("control")
。
-
getFormatter
返回此Handler
的Formatter
。- 返回:
-
Formatter
(可能为空)。
-
setEncoding
设置此Handler
使用的字符编码。应在将任何
LogRecords
写入Handler
之前设置编码。- 参数:
-
encoding
- 支持的字符编码的名称。可以为空,表示使用默认平台编码。 - 抛出:
-
SecurityException
- 如果存在安全管理器且调用者没有LoggingPermission("control")
。 -
UnsupportedEncodingException
- 如果不支持指定的编码。
-
getEncoding
返回此Handler
的字符编码。- 返回:
- 编码名称。可以为空,表示应使用默认编码。
-
setFilter
设置一个Filter
以控制此Handler
上的输出。对于每次调用
publish
,Handler
将调用此Filter
(如果非空)来检查是否应发布或丢弃LogRecord
。- 参数:
-
newFilter
- 一个Filter
对象(可以为空) - 抛出:
-
SecurityException
- 如果存在安全管理器且调用者没有LoggingPermission("control")
。
-
getFilter
获取此Handler
的当前Filter
。- 返回:
-
一个
Filter
对象(可以为空)
-
setErrorManager
为此Handler定义一个ErrorManager。如果在使用此Handler时发生任何错误,将调用ErrorManager的“error”方法。
- 参数:
-
em
- 新的ErrorManager - 抛出:
-
SecurityException
- 如果存在安全管理器且调用者没有LoggingPermission("control")
。
-
getErrorManager
检索此Handler的ErrorManager。- 返回:
- 此Handler的ErrorManager
- 抛出:
-
SecurityException
- 如果存在安全管理器且调用者没有LoggingPermission("control")
。
-
reportError
保护方便方法,向此Handler的ErrorManager报告错误。请注意,此方法检索并使用ErrorManager而不进行安全检查。因此,它可以在调用者可能没有特权的环境中使用。- 参数:
-
msg
- 描述性字符串(可以为空) -
ex
- 异常(可以为空) -
code
- 在ErrorManager中定义的错误代码
-
setLevel
设置指定将由此Handler
记录的消息的日志级别。低于此值的消息级别将被丢弃。意图是允许开发人员打开大量日志记录,但限制发送到某些
Handlers
的消息。- 参数:
-
newLevel
- 日志级别的新值 - 抛出:
-
SecurityException
- 如果存在安全管理器且调用者没有LoggingPermission("control")
。
-
getLevel
获取指定将由此Handler
记录的消息的日志级别。低于此级别的消息级别将被丢弃。- 返回:
- 正在记录的消息级别。
-
isLoggable
检查此Handler
是否实际记录给定的LogRecord
。此方法检查
LogRecord
是否具有适当的Level
,以及它是否满足任何Filter
。它还可能进行其他特定于Handler
的检查,这些检查可能会阻止处理程序记录LogRecord
。如果LogRecord
为空,则返回false。- 参数:
-
record
- 一个LogRecord
(可以为空)。 - 返回:
-
如果将记录
LogRecord
,则为true。
-