【知识点】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 ...
随机推荐
- 搭建LAMP环境部署Ecshop电商网站
实战-部署Ecshop电商网站 实验环境 Centos7 ip:192.168.121.17 一.关闭防火墙和selinux [root@localhost ~]# systemctl stop fi ...
- IDEA 常用快捷键列表【建议收藏】
编辑代码 快捷键 说明 Alt+Enter 导入包.自动变量命名等(万能快捷键) Ctrl+X 删除行 Ctrl+Y 删除当前行 Ctrl+D 复制行 Alt+Shift+Up/Down或Ctrl+S ...
- Socket编程——(转载)
我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠so ...
- 创建一个本地Yum 仓库,提升速度,减少带宽
1 mkdir /YUM 2 mount -t iso9660 -o loop /home/dan/Centos-7-x86_x64-DVD.iso /mnt/iso/ 3 rpm -ivh delt ...
- leetcode中Java关于Json处理的依赖
leetcode的java代码提供的main函数中,往往有关于json的依赖...我找了许久才找到他们用的是这个json实现 <dependency> <groupId>com ...
- Python发送SMTP邮件指南
SMTP(Simple Mail Transfer Protocol)简单邮件传输协议,Python内置对SMTP的支持,可以发送纯文本文件,HTML邮件以及附带文件. 一.两个模块 Pyth ...
- HarmonyOS技术特性
HarmonyOS技术特性 硬件互助,资源共享 多种设备之间能够实现硬件互助.资源共享,依赖的关键技术包括分布式软总线.分布式设备虚拟化.分布式数据管理.分布式任务调度等. 分布式软总线 分布式软总线 ...
- 激光雷达lidar与点云数据
激光雷达lidar与点云数据 DEM是分布和显示数字地形的首个广泛使用的机制. 点云是在空间中随机放置的3D点的集合.传感器发出能量脉冲并乘以其返回行程(TWTT,双向行程时间).知道了传感器的位置以 ...
- Nucleus-SE迁移:未实现的设施和兼容性
Nucleus-SE迁移:未实现的设施和兼容性 Nucleus SE migration: Unimplemented facilities and compatibility Nucleus SE的 ...
- Idea快捷键大全(Windows)
Ctrl 快捷键 介绍 Ctrl + F 在当前文件进行文本查找 (必备) Ctrl + R 在当前文件进行文本替换 (必备) Ctrl + Z 撤销 (必备) Ctrl + Y 删除光标所在行 或 ...