从源码与官方文档看之Handle篇(三)

简介: 我们继续看看源码,来一步步去深入Handle,去熟悉那些我们平时用得到和用不到的属性与特点。结合到我们开发工作中,看看我们取用了它哪些好用的地方。

正篇

我们首先继续去从官方注释和属性去看看:

Default constructor. The resulting Handler has a log level of Level.ALL, no Formatter, and no Filter. A default ErrorManager instance is installed as the ErrorManager.
protected Handler() {
}

我们可以直接发现这个是Handle类的默认构造方法,不过注释标明了它的一些属性和特点:生成的 Handler 的日志级别为 Level.ALL,没有 Formatter,也没有 Filter。 默认的 ErrorManager 实例部署实现为 ErrorManager。 接下来publish方法:

/**
 * Publish a <tt>LogRecord</tt>.
 * <p>
 * The logging request was made initially to a <tt>Logger</tt> object,
 * which initialized the <tt>LogRecord</tt> and forwarded it here.
 * <p>
 * The <tt>Handler</tt>  is responsible for formatting the message, when and
 * if necessary.  The formatting should include localization.
 *
 * @param  record  description of the log event. A null record is
 *                 silently ignored and is not published
 */
public abstract void publish(LogRecord record);

根据注释来看,这个方法是用来发布一个日志记录的,原理是日志记录请求最初是对 Logger 对象发出的,将该对象初始化为 LogRecord 并将其转发到此处。需要注意的是Handle负责在必要时对消息进行格式化。 格式应包括本地化。而这个方法的参数要求是:这是一个日志事件的描述,如果是空记录则被静默忽略且不发布。

接着是flush方法:

/**
 * Flush any buffered output.
 */
public abstract void flush();

注释是说这个方法可以刷新任何缓冲的输出。所以应该是一个刷新缓冲的方法。 然后还有close方法:

/**
 * Close the <tt>Handler</tt> and free all associated resources.
 * <p>
 * The close method will perform a <tt>flush</tt> and then close the
 * <tt>Handler</tt>.   After close has been called this <tt>Handler</tt>
 * should no longer be used.  Method calls may either be silently
 * ignored or may throw runtime exceptions.
 *
 * @exception  SecurityException  if a security manager exists and if
 *             the caller does not have <tt>LoggingPermission("control")</tt>.
 */
public abstract void close() throws SecurityException;

这是用来关闭 Handler 并释放所有相关资源的方法。close 方法会执行刷新,然后结束Handler。 调用 close() 后,不应再使用Handle类再处理其他活动。 方法调用可能会被静默忽略,也可能会引发运行时异常,抛出异常为SecurityException(如果存在安全管理器并且调用者没有用 LoggingPermission("control"))。

(未完待续)

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
1天前
|
人工智能 自然语言处理 安全
阿里云AI数智鉴密:AI 生成内容如何拿到一张"防篡改的身份证"
隐形水印 + C2PA签名:让AI生成内容“持证上岗”。
1086 0
|
10天前
|
人工智能 自然语言处理 安全
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
本文聚焦阿里云2026年推出的三款自研AI办公产品,清晰拆解千问办公、Qoder Teams、Qoder CN的差异化定位与能力边界:千问办公主打职场全场景提效,支持自然语言指令一键完成PPT生成、数据分析等高频办公任务;Qoder Teams面向程序员团队,深度整合AI代码生成、团队协同与企业知识库能力;Qoder CN则专为金融、政务等强合规场景打造,实现数据不出境与VPC私有化部署。文章同步给出分场景选型指南与最新活动定价,帮助不同类型的企业按需组合产品,实现业务岗、研发岗与强合规场景的AI能力全覆盖。
3604 3
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
|
22天前
|
人工智能 缓存 前端开发
DeepSeek Harness 首发实测 + 入门教程,夯爆了!梁神我错了
DeepSeek Harness + DeepSeek V4 Pro 项目实战保姆级教程!手把手带你从零安装开源 AI 编程工具,开发架构图、知识讲解网站、3D 网页游戏、全栈 AI 应用 4 个项目,覆盖运行模式选择、插件安装与开发,看看能不能对标 Claude。
13340 91
DeepSeek Harness 首发实测 + 入门教程,夯爆了!梁神我错了
|
15天前
|
Web App开发 人工智能 API
16 个超火的 DeepSeek Harness 插件,大肥鱼已经落后 N 个版本了。。。
DeepSeek Harness 精选插件推荐合集,从图片识别、浏览器操控、多 Agent 协作到手机远程控制,一口气带你看完 DSH 社区热门的十几个插件,覆盖技能扩展、UI 界面增强、整活玩法三大类,让你的鲸鱼变得更强。
1859 4
|
7天前
|
人工智能 监控 测试技术
Qwen3.8-Flash 来了,100万上下文、Agent、Coding 都加强了
8月26日,通义千问发布Qwen3.8-Flash-Next:125B参数、每Token仅激活6B,原生支持26万Token、可扩展至100万上下文;Coding、Agent与工具调用能力显著增强,面向真实软件工程任务,推动大模型从“回答问题”迈向“完成工作”。
|
10天前
|
人工智能 Linux iOS开发
Ollama使用教程:Ollama官网下载、Ollama本地部署大模型(2026最新)
Ollama 是一款免费开源的本地大模型运行工具,支持在 Windows/macOS/Linux 上离线运行 Qwen、DeepSeek、Llama 等主流开源模型,数据不出本机、隐私安全。提供 OpenAI 兼容 API,命令行一键拉取/运行/管理模型,无需联网,无调用限制,是开发者与 AI 爱好者部署本地 AI 助手的理想选择。(239 字)
|
16天前
|
人工智能 Java BI
【AI】DeepSeek Harness 安装、运行、管理插件
本文介绍了如何运行DeepSeek开源的Agent框架DeepSeek Harness(dsh)。主要内容包括:使用nvm安装适配的Node版本;通过代理加速克隆GitHub源码;使用pnpm安装依赖并启动项目;配置DeepSeek API Token;安装扩展功能的插件。该框架自带Web界面,支持模型适配、文件编辑等插件化功能
2069 1