一直以来,分不清楚java的Handler和android的handler,今天得空,看了下api,和源码,就胡乱写一下。
java中的handler类直接继承自Object类,jdk 1.6 api是这样描述handler的:
public abstract class Handler extends Object
java.lang.Object java.util.logging.Handler
-
直接已知子类:
- MemoryHandler, StreamHandler
Handler 对象从 Logger 中获取日志信息,并将这些信息导出。例如,它可将这些信息写入控制台或文件中,也可以将这些信息发送到网络日志服务中,或将其转发到操作系统日志中。
可通过执行 setLevel(Level.OFF) 来禁用 Handler,并可通过执行适当级别的 setLevel 来重新启用。
Handler 类通常使用 LogManager 属性来设置 Handler 的 Filter、Formatter 和 Level 的默认值。有关每个具体的 Handler 类,请参阅指定的文档
abstract void close()
关闭 Handler,并释放所有相关的资源。
abstract void flush()
刷新所有的缓冲输出。
String getEncoding()
返回该 Handler 的字符编码。
ErrorManager getErrorManager()
获取该 Handler 的 ErrorManager。
Filter getFilter()
获得该 Handler 的当前 Filter。
Formatter getFormatter()
返回该 Handler 的 Formatter。
Level getLevel()
获得用于指定该 Handler 所记录信息的日志级别。
boolean isLoggable(LogRecord record)
检查该 Handler 是否实际记录给定的 LogRecord。
abstract void publish(LogRecord record)
发布 LogRecord。
protected void reportError(String msg, Exception ex, int code)
用于向该 Handler 的 ErrorManager 报告错误的受保护便利方法。
void setEncoding(String encoding)
设置该 Handler 所用的字符编码。
void setErrorManager(ErrorManager em)
为该 Handler 定义一个 ErrorManager。
void setFilter(Filter newFilter)
设置 Filter,以控制该 Handler 的输出。
void setFormatter(Formatter newFormatter)
设置 Formatter。
void setLevel(Level newLevel)
设置日志级别,指定该 Handler 所记录的信息级别。