- 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
-
-
构造方法摘要
构造方法 变量 构造器 描述 protectedHandler()默认构造函数。
-
方法摘要
所有方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 abstract voidclose()关闭Handler并释放所有相关资源。abstract voidflush()刷新任何缓冲输出。StringgetEncoding()返回此Handler的字符编码。ErrorManagergetErrorManager()检索此Handler的ErrorManager。FiltergetFilter()获取当前Filter这个Handler。FormattergetFormatter()返回Formatter获取此Handler。LevelgetLevel()获取日志级别,指定此Handler将记录哪些消息。booleanisLoggable(LogRecord record)检查此Handler是否实际记录给定的LogRecord。abstract voidpublish(LogRecord record)发布LogRecord。protected voidreportError(String msg, 异常 ex, int code)受保护的便捷方法,向此Handler的ErrorManager报告错误。voidsetEncoding(String encoding)设置此Handler使用的字符编码。voidsetErrorManager(ErrorManager em)为此处理程序定义ErrorManager。voidsetFilter(Filter newFilter)设置Filter以控制此Handler上的输出。voidsetFormatter(Formatter newFormatter)设置Formatter。voidsetLevel(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 - 结果
-
如果将记录
LogRecordtrue。
-
-