前言
之前的文章实在太肤浅,写出来其实很多都没有太大帮助,所以我们另起一个系列“从源码与官方文档看”。这一篇我们为Handle从源码与官方文档与注释上开个篇章,事先声明,本人还是半吊子,所以可能很多地方出现错误,欢迎指正。
正篇
首先我们看看官方对Handle的注释:
A Handler object takes log messages from a Logger and exports them. It might for example, write them to a console or write them to a file, or send them to a network logging service, or forward them to an OS log, or whatever. A Handler can be disabled by doing a setLevel(Level.OFF) and can be re-enabled by doing a setLevel with an appropriate level. Handler classes typically use LogManager properties to set default values for the Handler's Filter, Formatter, and Level. See the specific documentation for each concrete Handler class. Since: 1.4
呃,英文不太好,但结合谷歌翻译大致还是能看明白,大意就是Handle这个对象呢,可以从Logger日志那获取日志消息并且还能输出他们,而且输出的地方很多,比如什么控制台还有文件以及网络日志服务与操作系统等,还说了这个特点的一些控制方式与方法。这一通解释我只能说不愧是官方和Google翻译,我反正不是特别理解。
但因为通常意义上我们用Handle一般就是:
Handler是更新UI界面的机制,也是消息处理的机制。我们可以通过Handle发送消息,也可以处理消息。
所以这个注释应该也是想说明Handle的消息处理的原理。
接着我们继续看Handle的具体代码:
public abstract class Handler { private static final int offValue = Level.OFF.intValue(); private final LogManager manager = LogManager.getLogManager();
很好,我们看到了注释文档一开始给我们的设置方法中的要素,第一offValue
是用于setLevel()
方法的,而这个方法中要传参就有Level.OFF
这个选择,而: 我们可以通过执行 setLevel(Level.OFF) 来禁用处理程序,并且可以通过执行具有适当级别的 setLevel 来重新启用处理程序。
网络异常,图片无法展示
|
此外,文档一开始也说明了:处理程序类通常使用 LogManager 属性来设置处理程序的过滤器、格式化程序和级别的默认值。
(未完待续)