C++简易日志库

学习C++已经很久了,一直不知道该用来做些什么。前几天看到了sylar的C++高性能服务器的视频,自己也就用C++写了一个简易的日志库。

功能要求

graph LR
A[Log功能框图]
A --> B[可输出基本的日志信息]
A --> C[可修改日志输出方式]
A --> D[可以多种方式同时输出日志信息]
A --> E[可设置日志输出的格式]
graph LR
A[Log分类]
A --> B[日志类型]
B --> B1[异常日志]
B --> B2[业务日志]
B --> B3[性能日志]
A --> C[日志级别]
C --> C1[错误日志]
C --> C2[警告日志]
C --> C3[通知日志]
C --> C4[调试日志]
C --> C5[跟踪日志]
A --> D[日志格式]
D --> D1[可设置]
A --> E[日志输出方式]
E --> E1[控制台]
E --> E2[日志文件]
E --> E3[其他设备]

实现

运行环境:Ubuntu20

系统一共实现了三个类——FORMAT、APPENDER、LOG
FORMAT:主要负责日志数据的格式化,可自定义格式化信息
APPENDER:主要负责日志数据输出到具体的目标地,可自定义输出方式
LOG:整个日志系统的实现类

整个系统采用了双缓冲的方案,实现了了前后端的分离,降低了系统耦合性。
采用了多线程的方式来对日志数据进行更新,当缓冲区满时会自动更新数据。为了保证数据的实时性,每隔3S也会自动更新缓冲区的数据。

由于个人时间和能力的原因,这个库还有很多不完善和待优化的地方,望大家指出改正。

源代码

原文链接: https://www.cnblogs.com/xiao--ge/p/13334670.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    C++简易日志库

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/367922

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 下午6:07
下一篇 2023年3月2日 下午6:07

相关推荐