通用插件框架体系-日志系统:
1.目的
日志是软件系统的基本功能,通过日志可以跟踪代码执行、分析问题。但日志系统作为一个辅助系统也有一些自己的要求。
1.执行效率足够快,不应对主业务产生影响。
2.可以根据需要控制输出的信息类容。
3.能适应复杂的项目环境
4.能跟踪到代码文件的行数
5.使用足够简单
2.设计思路
1.使用级别控制,将基本分为错误、告警、提示、轨迹等级别。
2.使用文本文件追加式记录(对比过多种记录方式,如内存数据库,只有这种方式速度最快,耗费资源最小)
3.使用c++的宏跟踪文件的名和代码行数,准确定位记录点。
4.日志系统交复杂的场景是多线程场景,使用线程锁防止信息输出混乱(当然这也损失了一些效率)
在设计上,首先实现了一个基本的类CTrack,再以这个类为基础提供了一个对外的接口Track,之后再定义了各种宏,方便模块的使用。
3.代码解析
3.1.日志配置文件读写
日志配置文件记录了日志文件的输出路径、允许输出的级别、日志文件名。使用ini文件保存在运行目录下的config目录中。
配置文件内容
TRACK_LEVEL = 6
LOG_PATH = /tmp/WsLogs
LOG_NAME = Testlog
配置文件的读取:
void CTrack::ReadConfig(const s