public abstract class Handler extends Object
A Handler可以通过执行setLevel(Level.OFF)禁用,并且可以通过执行具有适当级别的setLevel重新启用。
Handler类通常使用LogManager个属性来用于设置默认值的Handler的Filter,Formatter和Level。 请参阅具体的Handler具体文档 。
Modifier | Constructor and Description |
---|---|
protected |
Handler()
默认构造函数。
|
Modifier and Type | Method and Description |
---|---|
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记录。
|
protected Handler()
public abstract void publish(LogRecord record)
日志记录请求初始化为Logger对象,初始化LogRecord并在此处转发。
该Handler负责格式化消息时,如果必要的。 格式应包括本地化。
record
- 日志事件的描述。
空值记录被默认忽略并且未发布
public abstract void flush()
public abstract void close() throws SecurityException
关闭方法将执行flush ,然后关闭Handler 。 在关闭后被称为Handler不应再使用。 方法调用可能会被忽略或可能抛出运行时异常。
SecurityException
- 如果安全管理器存在,并且呼叫者没有
LoggingPermission("control") 。
public void setFormatter(Formatter newFormatter) throws SecurityException
一些Handlers可能不使用Formatters ,在这种情况下, Formatter将被记住,但不被使用。
newFormatter
- 要使用的
Formatter (可能不为空)
SecurityException
- 如果安全管理器存在,并且呼叫方没有
LoggingPermission("control") 。
public Formatter getFormatter()
public void setEncoding(String encoding) throws SecurityException, UnsupportedEncodingException
之前的任何LogRecords写入到Handler的编码应设置。
encoding
- 支持的字符编码的名称。
可以为空,表示默认的平台编码。
SecurityException
- 如果安全管理器存在,并且呼叫者没有
LoggingPermission("control") 。
UnsupportedEncodingException
- 如果不支持命名编码。
public String getEncoding()
public void setFilter(Filter newFilter) throws SecurityException
对于publish每个呼叫的Handler会调用这个Filter(如果非空),以检查是否LogRecord应发布或放弃。
newFilter
- 一个
Filter对象(可能为null)
SecurityException
- 如果安全管理器存在,并且呼叫方没有
LoggingPermission("control") 。
public Filter getFilter()
public void setErrorManager(ErrorManager em)
如果在使用此处理程序时发生任何错误,将会调用ErrorManager的“错误”方法。
em
- 新的ErrorManager
SecurityException
- 如果安全管理器存在,并且主叫方没有
LoggingPermission("control") 。
public ErrorManager getErrorManager()
SecurityException
- 如果安全管理器存在,并且呼叫者没有
LoggingPermission("control") 。
protected void reportError(String msg, 异常 ex, int code)
msg
- 一个描述性字符串(可以为空)
ex
- 异常(可能为空)
code
-
code
定义的错误代码
public void setLevel(Level newLevel) throws SecurityException
目的是允许开发人员打开大量日志记录,但是限制发送到某些Handlers的消息。
newLevel
- 日志级别的新值
SecurityException
- 如果存在安全管理员,并且主叫方没有
LoggingPermission("control") 。
public Level getLevel()
public boolean isLoggable(LogRecord record)
此方法检查LogRecord是否适合Level ,是否满足任何Filter 。 它也可能使其他Handler特定的检查可能会阻止处理程序记录LogRecord 。 如果LogRecord为空,它将返回false。
record
- a
LogRecord