04-Qt软件加入Log文件输出与终端彩色打印(包含行号)

一、目的与需求

在开发qt应用程序中,经常使用打印调试软件。qt自己的qDebug()就满足了需求。但是当需要把一部分log记录到文件的时候qt就没有提供了。这个时候可以使用qDebug()的qInstallMsgHandler来指定打印回掉函数了。在回掉打开文件进行写文件操作。这样简单实现,简单用。但是对于对log写文件要求比较高的比较成熟的log系统。还是自己专门实现一个或者用现成优秀的log库。

推荐的有Log4Qt。但是这里为了打印的高度定制化,还是得自己开发的一个qt的log打印库。实现代码比较简约稳定。实现主要参考了qDebug的实现架构。核心字符串与各种输入对象的合并为一个字符串使用了qt的类“QDebug”。名字叫做“MyLog” ^_^。

用MyLog可以在终端打印出对应log的代码文件名称和行号(qDebug()没有这个功能)。行号可以方便快速定位调试位置。MyLog把info,debug,error在终端以不同的颜色显示。很直观的看到各个级别的log信息。MyLog还可以把平时写的调试打印打印到log文件中。如果对log文件的细节不满意,还可以根据接口实现自己的类。然后使用installer_logger安装你实现的记录器即可用你定义的方式输出log文件了。

MyLog项目在github上,欢迎使用并一起改进。地址如下:

https://github.com/robert1207/MyLog

二、MyLog使用方法

  1. 下载MyLog
    MyLog是在LGPL协议下发布的库,因此可以把此库用于你的商业软件(动态库链接方式使用)。但是在这个库的源码基础上做修改并再次发布,需要同样遵循LGPL开源协议。MyLog的项目地址如下:
git clone https://github.com/robert1207/MyLog
  1. 在你的Qt工程文件xxx.pro中使用lib方式或src方式添加引用
#using MyLog as the src (使用你自己的目录)
#include($$PWD/my_lib/MyLog/MyLogSrc.pri)

#using MyLog as a lib (使用你自己的目录)
include($$PWD/my_lib/MyLog/MyLogLib.pri)
  1. 包括头文件
#include "my_log_export.h"
  1. 安装文件打印记录器
QCoreApplication::setApplicationName("myappname");
QCoreApplication::setApplicationVersion("0.0.1");
QCoreApplication::setOrganizationName("com.company.myappname"); //设置程序名称,保存文件时候用到
QCoreApplication::setOrganizationDomain("com.company.myappname");

MyLogNS::FileLogger *fileLog = new MyLogNS::FileLogger();
int result = fileLog->open_log_file_at_dir("log");
if(result != 0) {
   
    qDebug("error: %s", fileLog->get_error_str(result));
}
qDebug("log file path=%s", fileLog-
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值