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

news/2024/11/18 3:21:32/

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

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


http://www.ppmy.cn/news/4188.html

相关文章

Himall商城支付事件、链接类型

namespace Himall.Core.Plugins.Payment { /// <summary> /// 链接类型 /// </summary> public enum UrlType { /// <summary> /// 普通页面链接 /// </summary> Page, /// <summary> …

Batch Norm 与 Layer Norm

这里写自定义目录标题1 为何要对输入数据做 Normalization2 Batch Normalization3 Layer Normalization4 实际应用参考1 为何要对输入数据做 Normalization 可以比较好的抑制梯度消失和梯度爆炸的情况 归一化技术就是让每一层的分布稳定下来&#xff0c;让后面的层能在前面层…

基于java的贪吃蛇游戏-计算机毕业设计

项目介绍 本游戏采用Java环境和Eclipse开发工具&#xff0c;开发了一个界面美观&#xff0c;操作简单并且功能齐全的贪食蛇游戏&#xff0c;整个游戏分为了10个类&#xff0c;实现了游戏的开始、结束、暂停&#xff0c;通过了本游戏的开发&#xff0c;达到了学习Java及Java GU…

Python编程 函数的定义与参数

作者简介&#xff1a;一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.函数 1.函数例子 不会让代码重复的出现。CVout 2.函数介绍(熟悉) 3.…

【操作系统三】图解网络IO(bio\nio\slect\epoll)

【操作系统三】图解网络IO实战一、计算机组成二、系统中断三、晶振&#xff08;时间中断、分时复用&#xff09;四、事件中断1、DMA2、事件中断3、网卡也会产生中断&#xff1f;五、linux系统知识1、linux下一切皆文件&#xff1f;1.1、nc启动一个服务端,端口号80801.2、linux下…

CS61A Homework 8

更好的阅读体验 Homework 8 Solutions hw08.zip Solution Files You can find the solutions in the [hw08.py hw08.lark](https://cs61a.org/hw/sol-hw08/hw08.py hw08.lark) file. Questions RegEx Q1: CS Classes On reddit.com, there is an /r/berkeley subreddit …

第十四届蓝桥杯集训——if——配套基础示例

第十四届蓝桥杯集训——if——配套基础示例 目录 第十四届蓝桥杯集训——if——配套基础示例 例题1&#xff1a;三角形任意两边之和大于第三边 例题2&#xff1a;判断回文数 例题3&#xff1a;狗的年龄 例题4&#xff1a;帐密登录 例题1&#xff1a;三角形任意两边之和大于…

Linux部署Nginx并配置https

1. 下载nginx安装包 wget http://nginx.org/download/nginx-1.21.6.tar.gz2. 解压压缩包 tar -zvxf nginx-1.21.6.tar.gz3. 初始化configure #配置configure --prefix 代表安装的路径&#xff0c;--with-http_ssl_module 安装ssl&#xff0c;--with-http_stub_status_module…