从应用程序的角度来看 , 日志所处的位置比较尴尬 。之所以这么说 , 是因为我们尽力隔离依赖性 , 提供良好的接口 , 并最小化耦合 , 在编程时考虑的是单一职责原则 。然后日志出现了 , 它到处都是 , 与周围的代码无关 。与这些优秀的设计原则相比 , 日志显得有些背道而驰 。
- 社区支持
每一个成功框架的背后 , 都有一个伟大的社区 。框架的生命力源于不断地完善和发展 , 如果没有强大的社区做支撑 , 这个框架便失去了源动力 。
因此 , 在选择框架时 , 这一点非常重要——所选的框架是否有专门的团队做支撑?在像 Stack Overflow 这样的问答网站上 , 它是否有很强的存在感?确保一点 , 如果在使用过程中遇到了问题 , 你能有办法快速解决 。倘若选择了一个不知名的框架 , 当遇到了 Bug 时 , 那么可能会浪费大量的时间来解决问题 。
- 完整性
完整的框架 , 铸就完美的生产力 。在最前面 , 我们将日志的功能分为三个主要部分:日志记录、格式化和输出地 , 所以要确保所选的日志框架彻底解决了这些问题 。
日志记录和输出地比较基础 , 几乎所有日志框架都有这些概念 。话虽如此 , 但对于好的框架来说 , 应该巧妙地将日志记录与输出地分开 , 并且还应该有多种可选的输出地 。在理想情况下 , 最好能够自定义输出地 。
一般情况下 , 格式化日志文件会整齐地排列 , 并具有很好的可读性 。但在 DevOps 的世界里 , 这些远远不够 。具体来说 , 日志文件需要被格式化为可解析的数据 。通过将日志输出作为数据处理 , 可以很容易地聚合、搜索和可视化日志 , 从而能够在生产支持方面助你一臂之力 。所以 , 要确保日志框架拥有这种能力 。
- 发展前景
只有前途光明 , 方能大行其道 。无法绕过这一点——在选择日志框架时 , 不仅要考虑它的现状 , 还应该注重它的发展前景 。
像上面提到的 C++ 日志框架 , 每一个都非常优秀且特点鲜明 。但有一些却获得了更多的关注度 , 例如 log4cplus、glog , 为什么如此呢?因为它们有很强大的“基因”和“后台” , 一个是著名的 Log4j 的衍生品 , 另一个则是 Google 的“亲儿子” 。
一个框架的发展前景 , 取决于众多因素——关注度、用户基数、社区活跃度……要想大行其道 , 这些几乎都不能少 。
作者:一去、二三里 , 爱编程、爱分享、爱生活!
欢迎大家关注 , 更多优质原创内容敬请期待!
本文出自头条号【高效程序员】 , VX 公众号同名 。
推荐阅读
- Pyppeteer爬虫神器详解
- Linux文件系统EXT2,EXT3,ReiserFS详解
- 亡羊补牢告诉我们只要及时改正-亡羊补牢一文告诉我们的道理是只要肯接受意见认真改正-
- 数码相机选购方法详解
- 一文彻底读懂MySQL事务的四大隔离级别
- 详解客厅镜子风水知识及讲究
- enum在c++语言中是什么意思?c语言enum用法是什么意思
- MySQL详解:索引的介绍和原理分析
- 网络/命令行抓包工具tcpdump详解
- 一通百通,一文实现灵活的 K8S 基础架构
