![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
日志系统
文章平均质量分 66
小鳄鱼爱吃薯片
这个作者很懒,什么都没留下…
展开
-
【7】基于多设计模式下的同步&异步日志系统-代码设计
▪ 所以实际开发中会对单个⽇志⽂件的⼤⼩也会做⼀些控制,即当⼤⼩超过某个⼤⼩时(如1GB),我们就重新创建⼀个新的⽇志⽂件来滚动写⽇志。对于那些过期的⽇志, ⼤部分企业内部都有专⻔的运维⼈员去定时清理过期的⽇志,或者设置系统定时任务,定时清理过期⽇志。▪ 如果⼀个⽇志⽂件体积太⼤,⼀⽅⾯是不好打开,另⼀⽅⾯是即时打开了由于包含数据巨⼤,也不利于查找我们需要的信息。⽇志⽂件滚动的条件有两个:⽂件⼤⼩ 和 时间。▪ ⽇志⽂件在⼤于 1GB 的时候会更换新的⽂件。本项⽬基于⽂件⼤⼩的判断滚动⽣成新的⽂件。原创 2023-12-15 23:00:43 · 677 阅读 · 0 评论 -
【6】基于多设计模式下的同步&异步日志系统-代码设计
• std::vector< FormatItem::ptr> items成员:⽤于按序保存格式化字符串对应的⼦格式化对象。• TimeFormatItem :表⽰要从LogMsg中取出时间戳并按照指定格式进⾏格式化。• MsgFormatItem :表⽰要从LogMsg中取出有效⽇志数据。• LevelFormatItem :表⽰要从LogMsg中取出⽇志等级。• NameFormatItem :表⽰要从LogMsg中取出⽇志器名称。⽰例:“[%d{%H:%M:%S}] %m%n”◦ %c ⽇志器名称。原创 2023-12-15 22:54:29 · 461 阅读 · 0 评论 -
【5】基于多设计模式下的同步&异步日志系统-代码设计
提前完成⼀些零碎的功能接⼝,以便于项⽬中会⽤到。• 获取系统时间• 判断⽂件是否存在• 获取⽂件的所在⽬录路径• 创建⽬录。原创 2023-12-15 22:51:27 · 478 阅读 · 0 评论 -
【4】基于多设计模式下的同步&异步日志系统-框架设计
实现对⽇志的异步输出功能,⽤⼾只需要将输出⽇志任务放⼊任务池,异步线程负责⽇志的落地输出功能,以此提供更加⾼效的⾮阻塞⽇志输出。◦ 为了降低项⽬开发的⽇志耦合,不同的项⽬组可以有⾃⼰的⽇志器来控制输出格式以及落地⽅向,因此本项⽬是⼀个多⽇志器的⽇志系统。◦ 系统的默认⽇志输出格式:%d{%H:%M:%S}%T[%t]%T[%p]%T[%c]%T%f:%l%T%m%n。并提供⼀个默认⽇志器提供标准输出的⽇志输出。◦ %c:表⽰⽇志器名称,不同的开发组可以创建⾃⼰的⽇志器进⾏⽇志输出,⼩组之间互不影响。原创 2023-12-03 20:19:02 · 556 阅读 · 0 评论 -
【3】基于多设计模式下的同步&异步日志系统-设计模式
⼀个类只能创建⼀个对象,即单例模式,该设计模式可以保证系统中该类只有⼀个实例,并提供⼀个访问它的全局访问点,该实例被所有程序模块共享。⽐如在某个服务器程序中,该服务器的配置信息存放在⼀个⽂件中,这些配置数据由⼀个单例对象统⼀读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息,这种⽅式简化了在复杂环境下的配置管理。单例模式有两种实现模式:饿汉模式和懒汉模式。原创 2023-12-03 13:57:09 · 1137 阅读 · 0 评论 -
【2】基于多设计模式下的同步&异步日志系统-设计模式
在初学C语⾔的时候,我们都⽤过printf函数进⾏打印。其中printf函数就是⼀个不定参函数,在函数内部可以根据格式化字符串中格式化字符分别获取不同的参数进⾏数据的格式化。原创 2023-12-01 22:32:54 · 1164 阅读 · 0 评论 -
【1】基于多设计模式下的同步&异步日志系统-项目介绍
• ⽣产环境的产品为了保证其稳定性及安全性是不允许开发⼈员附加调试器去排查问题, 可以借助⽇志系统来打印⼀些⽇志帮助开发⼈员解决问题• 上线客⼾端的产品出现bug⽆法复现并解决, 可以借助⽇志系统打印⽇志并上传到服务端帮助开发⼈员进⾏分析• 对于⼀些⾼频操作(如定时器、⼼跳包)在少量调试次数下可能⽆法触发我们想要的⾏为,通过断点的暂停⽅式,我们不得不重复操作⼏⼗次、上百次甚⾄更多,导致排查问题效率是⾮常低下,可以借助打印⽇志的⽅式查问题。原创 2023-12-01 18:13:22 · 1869 阅读 · 1 评论