- 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 描述 protectedHandler()默认构造函数。
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 abstract voidclose()关闭Handler并释放所有相关资源。abstract voidflush()冲洗任何缓冲输出。StringgetEncoding()返回这个Handler的字符编码。ErrorManagergetErrorManager()检索此处理程序的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)受保护的方便方法来向此处理程序的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并释放所有相关资源。关闭方法将执行
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 - 结果
-
如果要记录
LogRecordtrue。
-
-