通用插件框架体系-日志系统

通用插件框架体系-日志系统:

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 string & path)
        {
        }
        
        void CTrack::Filtter(string & str)
        {
        }
        
        void CTrack::Splite(const string & str,char deom, vector &strls)
        {
        }
        
        void CTrack::filterSpace(string &str)
        {
        }
        
    3.2.日志输出对象的构造
        CTrack::CTrack(void)
            :m_count(0),m_trackLevel(9)
        {
            string appPath,appName;
            this->GetAppName(appPath,appName);

            string dataPath;
            this->Re

你可能感兴趣的:(软件开发,c++,软件工程)