首页| 论坛| 消息

标题:Qt开源作品39-日志输出增强版V2022
作者:liudianwu
日期:2021-11-14 11:11
内容:

## 一、前言
**之前已经开源过基础版本,近期根据客户需求和自己的项目需求,提炼出通用需求部分,对整个日志重定向输出类重新规划和重写代码。**
用Qt这个一站式超大型GUI超市做开发已经十二年了,陆陆续续开发过至少几十个程序,除了一些算不算项目的小工具外,大部分的程序都需要有个日志的输出功能,希望可以将程序的运行状态存储到文本文件或者数据库或者做其他处理等,Qt对这个日志输出也做了很好的封装,在Qt4是qInstallMsgHandler,Qt5及Qt6里边是qInstallMessageHandler,有了这个神器,只要在你的项目中所有qDebug qInfo等输出的日志信息,都会重定向接收到。
网上大部分人写的demo都是接收到输出打印日志存储到文本文件,其实这就带给很多人误解,容易产生以为日志只能输出到文本文件,其实安装了日志钩子以后,拿到了所有调试打印信息,你完全可以用来存储到数据库及输出html有颜色区分格式的文件,或者网络转发输出(尤其适用于嵌入式linux无界面程序,现场不方便外接调试打印的设备)。
做过的这么多项目中,Qt4、Qt5、Qt6的都有,我一般保留四个版本,4.8.7,为了兼容Qt4, 5.7.0,最后的支持XP的版本, 最新的长期支持版本5.15.2 最高的新版本6.2.1。毫无疑问,我要封装的这个日志类,也要同时支持Qt4、Qt5、Qt6的,而且提供友好的接口。
## 二、主要功能
1. 支持动态启动和停止。
2. 支持日志存储的目录。
3. 支持网络发出打印日志。
4. 支持输出日志上下文信息比如所在代码文件、行号、函数名等。
5. 支持设置日志文件大小限制,超过则自动分文件,默认128kb。
6. 支持按照日志行数自动分文件,和日志大小条件互斥。
7. 可选按照日期时间区分文件名存储日志。
8. 日志文件命名规则优先级:行数》大小》日期。
9. 自动加锁支持多线程。
10. 可以分别控制哪些类型的日志需要重定向输出。
11. 支持Qt4+Qt5+Qt6,开箱即用。
12. 使用方式最简单,调用函数start()启动服务,stop()停止服务。
## 三、效果图


## 四、开源主页
**以上作品完整源码下载都在开源主页,会持续不断更新作品数量和质量,欢迎各位关注。**
1. 国内站点:[https://gitee.com/feiyangqingyun/QWidgetDemo](https://gitee.com/feiyangqingyun/QWidgetDemo)
2. 国际站点:[https://github.com/feiyangqingyun/QWidgetDemo](https://github.com/feiyangqingyun/QWidgetDemo)
3. 个人主页:[https://blog.csdn ..

回复 发表
主题 版块