当前位置: 首页 > news >正文

C++/Linux项目——日志系统(简介)

一,日志系统的目的

1.⽣产环境的产品为了保证其稳定性及安全性是不允许开发⼈员附加调试器去排查问题, 可以借助⽇志系统来打印⼀些⽇志帮助开发⼈员解决问题
2.上线客⼾端的产品出现bug⽆法复现并解决, 可以借助⽇志系统打印⽇志并上传到服务端帮助开发⼈员进⾏分析
3. 对于⼀些⾼频操作(如定时器、⼼跳包)在少量调试次数下可能⽆法触发我们想要的⾏为,通过断点的暂停⽅式,我们不得不重复操作⼏⼗次、上百次甚⾄更多,导致排查问题效率是⾮常低下,可以借助打印⽇志的⽅式查问题
4. 在分布式、多线程/多进程代码中, 出现bug⽐较难以定位, 可以借助⽇志系统打印log帮助定位
bug
5.帮助⾸次接触项⽬代码的新开发⼈员理解代码的运⾏流程

二,实现功能

1.支持多级别日志消息

根据日志消息的威胁程度进行分级输出,例如警告日志,错误日志等

2.支持同步日志和异步日志

同步指的是由主线程来输出,异步是由其他工作线程来输出

3. 支持可靠写入日志到控制台,文件以及滚动文件

指的是将日志消息进行标准输出,或者写到一个文件里,或者按日期分文件写入

4.支持多线程程序并发写日志

我们会确保日志系统是线程安全的,因此也支持多线程程序并发写日志

5.支持拓展不同的日志落地目标地

可以应用各种场景

三,开发环境

1.CentOS 7

2.vscode/vim

3.g++/gdb

4.Makefile

四,核心技术

1.类层次设计(继承和多态的应用)

2.C++11(多线程,智能指针,auto,右值引用等)

3.双缓冲区

4.生产消费模型

5.多线程

6.设计模式(单例,工厂,代理等)

总结

本文主要简单介绍一下日志系统,后续也会记录项目实现,感兴趣的老铁可以关注一下

http://www.lryc.cn/news/113857.html

相关文章:

  • 【Redis面试题整理一】
  • 前端权限验证之自定义指令v-permission
  • c++使用条件变量实现生产消费问题(跨平台)
  • 怎么快速搭建BI?奥威BI系统做出了表率
  • Kafka3.4 SASL/kerberos/ACL 证以及 SSL 加密连接
  • UE中低延时播放RTSP监控视频解决方案
  • iOS - 开发者账号续订会员资格更换订阅的账号
  • 大数据课程F3——HIve的基本操作
  • top解析
  • 如何让子组件,router-view,呈现左右分布格局
  • 计算机网络—TCP和UDP、输入url之后显示主页过程、TCP三次握手和四次挥手
  • 使用反汇编工具IDA查看发生异常的汇编代码的上下文去辅助分析C++软件异常
  • 怎么合并多个视频?简单视频合并方法分享
  • webpack基础知识九:如何提高webpack的构建速度?
  • 批量改名字序号和前缀
  • 基于Spring Boot的医院预约挂号网站设计与实现(Java+spring boot+MySQL)
  • Linux命令200例:join将两个文件按照指定的键连接起来分析
  • 谈谈网络安全
  • 机器学习深度学习——文本预处理
  • Qt实现可伸缩的侧边工具栏(鼠标悬浮控制伸缩栏)
  • 【Spring Boot】拦截器与统一功能处理
  • RabbitMQ的6种工作模式
  • MFC第二十六天 CRgn类简介与开发、封装CMemoryDC类并应用开发
  • 解决VScode远程服务器时opencv和matplotlib无法直接显示图像的问题
  • 支付模块功能实现(小兔鲜儿)【Vue3】
  • php meilisearch demo
  • 芒格之道——查理·芒格股东会讲话1987-2022
  • 如何运营手游联运平台游戏?
  • vscode连接远程Linux服务器
  • numpy 转换成 cupy 利用GPU执行 错误