C++简易日志库

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

功能要求

Log功能框图
可输出基本的日志信息
可修改日志输出方式
可以多种方式同时输出日志信息
可设置日志输出的格式
Log分类
日志类型
异常日志
业务日志
性能日志
日志级别
错误日志
警告日志
通知日志
调试日志
跟踪日志
日志格式
可设置
日志输出方式
控制台
日志文件
其他设备

实现

运行环境:Ubuntu20

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

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

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

源代码

你可能感兴趣的:(Linux)