访问国外网站加速,wordpress垂直分页导航插件,信息流广告代运营公司,游戏公司做网站文章目录 专栏导读模块划分日志等级模块日志消息模块日志消息格式化模块日志消息落地模块日志器模块日志器管理模块异步线程模块 模块关系图 专栏导读 #x1f338;作者简介#xff1a;花想云 #xff0c;在读本科生一枚#xff0c;C/C领域新星创作者#xff0c;新星计划导… 文章目录 专栏导读模块划分日志等级模块日志消息模块日志消息格式化模块日志消息落地模块日志器模块日志器管理模块异步线程模块 模块关系图 专栏导读 作者简介花想云 在读本科生一枚C/C领域新星创作者新星计划导师阿里云专家博主CSDN内容合伙人…致力于 C/C、Linux 学习。 专栏简介本文收录于 C项目——基于多设计模式下的同步与异步日志系统 相关专栏推荐C语言初阶系列、C语言进阶系列 、C系列、数据结构与算法、Linux 本项目实现的是一个多日志器日志系统主要实现的功能是让程序员能够轻松的将程序运行日志信息落地到指定位置且支持同步与异步两种方式的日志落地方式。
项目的框架设计将项目分为以下几个模块来实现。
具体模块在代码实现中详细讲解
模块划分
日志等级模块
对输出日志的等级进行划分以便于控制日志的输出并提供等级枚举转字符串的功能。
日志消息分为以下等级
OFF关闭DEBUG调式调试时的关键信息输出INFO提示普通的提示性日志信息WARN警告不影响运行但是需要注意的日志ERROR错误程序运行时出现错误的日志FATAL致命一般是代码导致程序无法正常运行的日志。
日志消息模块
中间存储日志输出所需的各项要素信息。 时间描述本条日志输出的时间线程ID描述本条日志是哪一个线程输出的日志等级描述本条日志的等级日志文件名描述本条日志在哪一个源码文件中输出的日志行号描述本条日志在源码文件的哪一行输出的日志数据本条日志的有效数据载荷。
日志消息格式化模块 设置日志输出格式并提供对日志消息格式化的功能。 系统的默认日志输出格式[%d{%H:%M:%S}][%t][%c][%f:%l][%p]%T%m%n %d 表示日期包含子格式 {%H:%M:%S}%t 表示线程ID%c 表示日志器名称%f 表示源码文件名%l 表示源码行号%p 表示日志级别%m 表示主体消息%n 表示换行 设计思想设计不同的子类不同的子类从日志消息中取出不同的数据进行处理。
日志消息落地模块
决定了日志消息的落地方向即输出位置可以是标准输出。也可以是日志文件也可以是滚动文件进行输出。 标准输出表示将日志信息进行标准输出打印日志文件输出表示将日志写入指定文件末尾滚动文件输出当前以文件大小进行控制当一个日志文件大小达到指定大小则切换下一个文件进行输出 后期也可以拓展远程日志输出创建客户端将日志消息发送到远程的的日志分析服务器设计思想设计不同的子类不同的子类控制不同的日志落地方向。
日志器模块
此模块是对以上几个模块的整合用户通过日志器进行日志的输出有效降低用户的使用难度。此模块包含有日志消息落地模块对象日志消息格式化模块对象日志输出等级。
日志器管理模块
为了降低项目开发的耦合不同的项目组可以有可以有自己的日志器来控制输出格式以及落地方向因此本项目是一个多日志器的日志系统。管理模块就是对创建的所有日志器进行统一的管理。并提供一个默认日志器提供标准输出的日志输出。
异步线程模块
实现对日志的异步输出功能用户只需要将输出的日志任务放入任务池异步线程负责日志的落地输出功能以此提供更加高效的非阻塞日志输出。
模块关系图