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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract voidclose()关闭Handler并释放所有相关资源。abstract voidflush()刷新任何缓冲输出。返回此Handler的字符编码。检索此Handler的ErrorManager。获取此Handler的当前Filter。返回此Handler的Formatter。getLevel()获取指定将由此Handler记录的消息的日志级别。booleanisLoggable(LogRecord record) 检查此Handler是否实际记录给定的LogRecord。abstract void发布一个LogRecord。protected voidreportError(String msg, Exception ex, int code) 保护方便方法,向此Handler的ErrorManager报告错误。voidsetEncoding(String encoding) 设置此Handler使用的字符编码。void为此Handler定义一个ErrorManager。void设置一个Filter以控制此Handler上的输出。voidsetFormatter(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。
-