【知识点】C++的日志框架
常用的 C++ 日志框架
一、日志框架
经过专门设计的实用程序,用于规范应用程序的日志记录过程,就是日志框架。日志框架必须通过处理日志记录来标准化解决方案,从而暴露一个标准的 API。首先要发出要记录的信息。然后格式化这些信息,最后决定将它输出到哪里。一般情况下,会输出到文件中,但是也可以将其输出到控制台、数据库,或者任何能够接收数据的地方。二、为什么不是 cout
只为成为更好的攻城狮。也许有人会问:既然 C++ 中有 cout,为什么还要使用日志呢?
使用日志框架是一种很好的实践。即使像《代码整洁之道》这样的书籍,也建议学习像 Log4 这样的框架进行日志记录。所以,应尽可能的在生产代码中使用日志,而不是用 cout 来打印东西(这是不可接受的)。三、使用日志的好处
日志是一个优秀系统不可或缺的组成部分。但若有日志的帮助,我们便能迅速摆脱这种困境,可以很快地发现异常,并快速定位、解决问题!通过记录某些操作所花费的时间,我们可以及时地检测模块的瓶颈,并针对性地对一些耗时操作做出优化。需要采集和分析用户的行为,而日志无疑是最主要的数据来源。不要去重新发明轮子 - 《麦肯锡方法》
To be or not to be - that is the question.
请避免重复劳动,不要去重新发明轮子。应该坚持在自己的领域解决问题,将时间花在刀刃上。话虽如此,但我们还是需要了解关于轮子的一些细节(谁造的?怎么创造的?如何使用?),以从中接受灵感,并把自己的知识加进去。- log4cxx:Java 社区著名的 Log4j 的 C++ 移植版,用于为 C++ 程序提供日志功能,以便开发者对目标程序进行调试和审计。
- log4cplus:一个简单易用的 C++ 日志记录 API,它提供了对日志管理和配置的线程安全、灵活和任意粒度控制(也基于 Log4j)。
- Log4cpp:一个 C++ 类库,可以灵活地记录到文件、syslog、IDSA 和其他目的地(也基于 Log4j)。
- google-glog:一个 C++ 语言的应用级日志记录框架,提供了 C++ 风格的流操作和各种辅助宏。
- Pantheios:一个类型安全、高效、泛型和可扩展性的 C++ 日志 API 库(号称 C++ 领域速度最快的日志库)。
- POCO:还提供了一个 好的日志支持文档。
- ACE:ACE 也有日志支持。
- Boost.Log:设计的非常模块化,并且可扩展。
- Easylogging++:轻量级高性能 C++ 日志库(只有一个头文件)。
- G3log:一个开源、支持跨平台的异步 C++ 日志框架,支持自定义日志格式。基于 g2log 构建,提升了性能,支持自定义格式。
- Plog:可移植、简单和可扩展的 C++ 日志库。
- spdlog:一个快速的 C++ 日志库,只包含头文件,兼容 C++11。
- ……
五、日志选择标准
能让你事半功倍。功能决定当下,性能决定未来。影响越小,越容易维护。在以后的使用中,日志将无处不在。就像会影响运行时性能一样,它们也会影响源码的可维护性。每一个成功框架的背后,都有一个伟大的社区。完整的框架,铸就完美的生产力。只有前途光明,方能大行其道。【知识点】C++的日志框架的更多相关文章
- Java最重要的21个技术点和知识点之JAVA集合框架、异常类、IO
(三)Java最重要的21个技术点和知识点之JAVA集合框架.异常类.IO 写这篇文章的目的是想总结一下自己这么多年JAVA培训的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享 ...
- Java 日志框架终极教程
概述 对于现代的 Java 应用程序来说,只要被部署到真实的生产环境,其日志的重要性就是不言而喻的,很难想象没有任何日志记录功能的应用程序被运行于生产环境中.日志 API 所能提供的功能是多种多样的, ...
- 解读ASP.NET 5 & MVC6系列(9):日志框架
框架介绍 在之前的.NET中,微软还没有提供过像样的日志框架,目前能用的一些框架比如Log4Net.NLog.CommonLogging使用起来多多少少都有些费劲,和java的SLF4J根本无法相比. ...
- Java日志框架:SLF4J,Common-Logging,Log4J,Logback说明
Log4j Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口服务 器.NT的事件记录器.UNIX Syslog守护进程等 ...
- java日志框架slf4j与log4j
日志记录自然是非常重要的,但恐怕能记住slf4j与log4j等日志框架配置的人就很少了,这个东西不难,只是配置好后很少会去动它,开发新项目一般也是从其他项目拷贝,或者参照文档 废话不多说,先说log4 ...
- Moon转告给你一个比Log4net更好日志框架--TracerX Logger 及其对应的日志查看器
一.介绍 TracerX logger是一个易于上手,且拥有众多高级特性的.NET日志框架. 它能够发送输出结果到多目的地(循环文件.事件日志等....).它也能生成文本和二进制文件.它拥有一个强大的 ...
- lombok+slf4j+logback SLF4J和Logback日志框架详解
maven 包依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lomb ...
- log4net 日志框架的配置
log4net 日志框架的配置——静态文件(一) 添加对log4net程序集的引用 选择程序集文件添加引用即可,需要注意的是需要添加相应程序版本的程序集,如果你的应用是基于.netFramework2 ...
- 日志框架对比 NLog VS Log4net
Log4net 先说Log4net,它是.net平台上一个老牌的日志框架,我接触的时间也不长(因为公司有自己的日志库),但是看着各开源库都在用这个于是前段时间也尝试去了解了一下. 首先让我认识到Log ...
随机推荐
- Msf--控制 Android手机
|>>>中华人民共和国网络安全法<<<|警告:请勿用于非法用途,后果自负! 0.环境 虚拟机 KaliLinux 手机 Redmi 6A 同一局域网下 1.查看控制 ...
- DOS 命令大全用法详解
注意事项 DOS命令不区分大小写,比如C盘的Program Files,在dos命令中完全可以用"program files"代替,加上英文引号是因为名称的中间有空格(即多于一个词 ...
- Boostrap bootstrap-table插件使用教程
bootstrap table 简介及特性 简介 Bootstrap table 是国人开发的一款基于 Bootstrap 的 jQuery 表格插件,通过简单的设置,就可以拥有强大的单选.多选.排序 ...
- 实操笔记:为 NSQ 配置监控服务的心路历程
在 Go 语言实现的实时消息队列中, NSQ 的热度可以排第一. NSQ 这款消息中间件简单易用,其设计目标是为在分布式环境下运行,为去中心化服务提供一个强大的基础架构.它具有分布式.去中心化的拓扑结 ...
- 5分钟安装docker教程
Centos安装docker需要操作系统是 CentOS 7 or 8,必须启用centos extras存储库.默认情况下,此存储库处于启用状态,但如果已禁用它,则需要重新启用它. 卸载旧版本 老版 ...
- MarkDown笔记一
目录 目录 字体 标题 下划线标题 #号标题 加重与斜体 高亮 删除线 上标与下标 脚注 转义字符 分割线 段落 空行 结尾两个空格 区域引用 每行> 每段> 可嵌套 目录 把文档中所有标 ...
- 西门子S7系列以太网通讯处理器功能介绍
北京华科远创科技有限研发的远创智控型号ETH-YC模块适用于西门子S7-200/S7-300/S7-400.SMART S7-200.西门子数控840D.840DSL.合信.亿维PLC的PPI/MPI ...
- [leetcode] 208. 实现 Trie (前缀树)(Java)
208. 实现 Trie (前缀树) 实现Trie树,网上教程一大堆,没啥可说的 public class Trie { private class Node { private int dumpli ...
- Python+Selenium自动化-模拟键盘操作
Python+Selenium自动化-模拟键盘操作 0.导入键盘类Keys() selenium中的Keys()类提供了大部分的键盘操作方法:通过send_keys()方法来模拟键盘上的按键. # ...
- Go语言介绍(背景、特点)
一.go语言的背景 Go是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易. Go(又称 Golang)是 Google 的 Rob Pike(罗勃.派克),Ken Thompson(肯· ...