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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 上一篇我们根据官方注释解读Handle的一些基本属性,这一篇我们接着慢慢阐述。

正篇

首先我们接着看下面官方给Handle的一些参数:

// We're using volatile here to avoid synchronizing getters, which
// would prevent other threads from calling isLoggable()
// while publish() is executing.
// On the other hand, setters will be synchronized to exclude concurrent
// execution with more complex methods, such as StreamHandler.publish().
// We wouldn't want 'level' to be changed by another thread in the middle
// of the execution of a 'publish' call.
private volatile Filter filter;
private volatile Formatter formatter;
private volatile Level logLevel = Level.ALL;
private volatile ErrorManager errorManager = new ErrorManager();
private volatile String encoding;

依次来看,他们分别是 注释说了一些条件前提与理由:说使用 volatile 来避免同步 getters;阻止其他线程调用 isLoggable();当 publish() 正在执行时;setters 将被同步以排除并发;推荐使用更复杂的方法执行,例如 StreamHandler.publish();官方还不希望 'level' 被中间的另一个线程改变;要在执行“发布”调用

1.过滤器 用于Logger和Handler控制日志级别

2.格式化 可以用于格式化LogRecords

3.日志级别标签

4.错误管理  翻译的大意就是这是可以附加到 Handlers 用于处理 Logging 期间发生在 Handler 上的任何错误。

在处理日志输出时,如果 Handler 遇到问题,则 Handler 应该调用其关联的 ErrorManager,而不是向日志调用的发出者抛出异常。

5.编码  没找到官方的解释,所以暂时先搁置一下,额,我们继续往下看

// Package private support for security checking.  When sealed
// is true, we access check updates to the class.
boolean sealed = true;

这个属性根据翻译来看,大意是为安全检查打包私有支持。 密封时。

且该属性为真的时候,我们就可以访问检查更新类。

(未完待续)

小结

我们已经看完了方法之前的一些变量和方法引用,下一篇将开始具体讲述方法的实现。

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
机器学习/深度学习 人工智能 数据挖掘
AlexNet架构解析
AlexNet是2012年ImageNet图像分类竞赛的冠军,首次将卷积神经网络CNN和深度学习用于大规模图像分类并且性能优异,在今天也具有一定的参考价值。
973 0
AlexNet架构解析
|
10月前
|
人工智能 前端开发 数据可视化
2024年低代码趋势洞察——企业最看重的功能有哪些
低代码平台正从“可选”工具转变为数字化转型的“必需品”。预计到2024年,全球超70%企业将引入低代码开发工具。其优势在于简化流程、提高效率和降低成本,支持可视化开发、多人协作、快速部署与五大核心引擎(SQL、功能、模板、图表、切面),并结合AI智能助力全流程优化。此外,丰富的插件生态和强大的技术架构保障了灵活性与性能,助力企业在复杂业务场景中实现高效运营与决策。
|
6月前
|
前端开发 搜索推荐 JavaScript
如何通过DIY.JS快速构建出一个DIY手机壳、T恤的应用?
DIY.JS 是一款基于原生 Canvas 的业务级图形库,专注于商品定制的图形交互功能,帮助开发者轻松实现个性化设计。适用于 T 恤、手机壳等多种商品场景。它自带丰富功能,无需从零构建,快速集成到项目中。通过创建舞台、添加模型、定义 DIY 区域和添加素材四个步骤即可完成基础用法。支持在线演示体验,文档详细,易上手。
231 57
|
9月前
|
JavaScript Java 程序员
SpringBoot自动配置及自定义Starter
Java程序员依赖Spring框架简化开发,但复杂的配置文件增加了负担。SpringBoot以“约定大于配置”理念简化了这一过程,通过引入各种Starter并加载默认配置,几乎做到开箱即用。
354 10
SpringBoot自动配置及自定义Starter
|
数据挖掘 OLAP OLTP
深入解析:OLTP与OLAP的区别与联系
【8月更文挑战第31天】
2865 0
|
JSON 安全 API
如何高效编写API接口:以Python与Flask为例
构建RESTful API的简明教程:使用Python的Flask框架,从环境准备(安装Python,设置虚拟环境,安装Flask)到编写首个API(包括获取用户列表和单个用户信息的路由)。运行API服务器并测试在`http://127.0.0.1:5000/users`。进阶话题包括安全、数据库集成、API文档生成和性能优化。【6月更文挑战第27天】
418 7
|
存储 人工智能 分布式计算
工作流、数据集、模型一网打尽
揭开人工智能的面纱:工作流、数据集、模型一网打尽 随着人工智能技术的飞速发展,越来越多的企业开始尝试运用AI来提升工作效率、优化业务流程。然而,对于AI的内部机制,许多人仍然感到神秘莫测。今天,就让我们来揭开AI的面纱,聊聊与AI密切相关的几个核心概念:工作流(Pipeline)、数据集(DataSet)和模型(Model)
302 2
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的亲海社区医院儿童预防接种管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的亲海社区医院儿童预防接种管理系统附带文章源码部署视频讲解等
116 0
|
存储 算法 Java
揭秘计算机奥秘:基础知识大挑战,踏上科技探索之旅
揭秘计算机奥秘:基础知识大挑战,踏上科技探索之旅
93 0