QT中实现log存储的四种方法

一.需求

   商业项目开发中,大部分的程序都需要有个日志的输出功能,希望可以将程序的运行状态存储到文本文件或者数据库或者做其他处理,下面介绍几种QT中日志功能的实现方式。

二.QT中日志功能的实现方式

1.日志重定向输出

    这种方式已经有人直接封装成了类,并做成了开源软件,直接下载可用,下载地址:https://gitcode.com/feiyangqingyun/QWidgetDemo/tree/master/control/savelog

    qt对这个日志输出也做了很好的封装,在Qt4是qInstallMsgHandler,Qt5里边是qInstallMessageHandler,有了这个神器,只要在你的项目中所有qdebug qinfo等输出的日志信息,都会重定向接收到,

    日志可以输出到文本文件,装入日志钩子以后,拿到了所有调试打印信息,可以用来存储到数据库+html有颜色区分格式的文件+网络转发输出(尤其适用于嵌入式linux无界面程序,现场不方便外接调试打印的设备)。

    使用说明:https://gitee.com/feiyangqingyun/QWidgetDemo

主要功能:

支持动态启动和停止。

支持日志存储的目录。

支持网络发出打印日志。

支持Qt4+Qt5,开箱即用。

支持多线程。

使用做到最简单,start即可。  

  

2.log4qt

   log4qt是Apache的log4j的qt移植版本,log4j是在java下面使用的一个超强大的日志系统;

   log4qt是一些大牛参考log4j整理的一套在C++上使用的日志系统,使用参考log4j的使用,log4qt是开源的,有多个版本源码,功能有所相等,实现也各不相同,有一些配置选项并没有实现,

   需要自己修改源码,比如说设置输出等级,打印文件名、函数名、行号等信息。

   首先log4qt是一个开源的源码,可以在官网进行下载源码:https://sourceforge.net/projects/log4qt/

3.QsLog

  QsLog简单小巧,它是一个基于Qt的轻量级开源日志库。

下载地址:https://github.com/victronenergy/QsLog

功能特征:

六个日志级别(从跟踪到致命)

运行时可配置的日志级别阈值。

关闭日志记录时的最小开销。

支持多个目标,附带文件和调试目标。

线程安全。

支持现成的常见Qt类型的日志记录。

小依赖:直接把它放到你的项目中。

4.qclog

  基于Qt5/C++的日志库,可输出彩色日志,高效、快速、易用、好看。

  https://gitee.com/umatobu/qclog

  

三.总结

   第一种方式最简单,要求不高用起来也很方便;第三种比较小巧方便,这两种方式之前都有用过,都还不错;

   至于第二种就相对复杂,功能也应该较多,本人也没有实际用过,用过的同学可以评价一下;

   第四种没有用过,但看了一下也比较小巧,有兴趣的人可以试一下;

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI+程序员在路上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值