- java.lang.Object
-
- java.util.logging.Handler
-
- 已知直接子类:
-
MemoryHandler
,StreamHandler
public abstract class Handler extends Object
一个Handler
对象从需要日志消息Logger
和出口他们。 例如,可以将它们写入控制台或将其写入文件,或者将其发送到网络日志记录服务,或将其转发到操作系统日志或其他任何操作系统。A
Handler
可以通过执行setLevel(Level.OFF)
禁用,并且可以通过执行适当级别的setLevel
重新启用。Handler
类通常使用LogManager
属性来用于设置默认值的Handler
的Filter
,Formatter
,和Level
。 请参阅每个具体的具体文档Handler
课程。- 从以下版本开始:
- 1.4
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
Handler()
默认构造函数。
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 abstract void
close()
关闭Handler
并释放所有相关资源。abstract void
flush()
冲洗任何缓冲输出。String
getEncoding()
返回这个Handler
的字符编码。ErrorManager
getErrorManager()
检索此处理程序的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)
受保护的方便方法来向此处理程序的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
并释放所有相关资源。关闭方法将执行
flush
,然后关闭Handler
。 在关闭之后,这个Handler
应该不再被使用了。 方法调用可能会被忽略或可能抛出运行时异常。- 异常
-
SecurityException
- 如果安全管理器存在,并且呼叫者没有LoggingPermission("control")
。
-
setFormatter
public void setFormatter(Formatter newFormatter) throws SecurityException
设置Formatter
。 这个Formatter
将用于格式LogRecords
为这Handler
。有些
Handlers
可能不使用Formatters
,在这种情况下,Formatter
将被记住,但不被使用。- 参数
-
newFormatter
- 要使用的Formatter
(可能不为空) - 异常
-
SecurityException
- 如果存在安全管理员,并且呼叫者没有LoggingPermission("control")
。
-
getFormatter
public Formatter getFormatter()
返回Formatter
为这Handler
。- 结果
-
Formatter
(可能为null)。
-
setEncoding
public void setEncoding(String encoding) throws SecurityException, UnsupportedEncodingException
设置Handler
使用的字符编码。之前的任何编码应设置
LogRecords
被写入Handler
。- 参数
-
encoding
- 支持的字符编码的名称。 可以为空,表示默认的平台编码。 - 异常
-
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
- aFilter
对象(可能为空) - 异常
-
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()
检索此处理程序的ErrorManager。- 结果
- 该处理程序的ErrorManager
- 异常
-
SecurityException
- 如果安全管理器存在,并且主叫方没有LoggingPermission("control")
。
-
reportError
protected void reportError(String msg, 异常 ex, int code)
受保护的方便方法来向此处理程序的ErrorManager报告错误。 请注意,此方法在不进行安全检查的情况下检索并使用ErrorManager。 因此,它可以在呼叫者可能是非特权的环境中使用。- 参数
-
msg
- 描述性字符串(可以为空) -
ex
- 异常(可能为空) -
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
- aLogRecord
- 结果
-
如果要记录
LogRecord
true。
-
-