前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >定制Qt的调试输出

定制Qt的调试输出

作者头像
Qt君
发布2020-04-15 21:54:38
8010
发布2020-04-15 21:54:38
举报
文章被收录于专栏:跟Qt君学编程跟Qt君学编程

?我们使用Qt库用的最多的调试输出是qDebug了,但是它输出单一。如果需要输出日期时间,行号等消息时都需要通过代码去实现似乎太过于繁琐。本文通过简单的配置,用最少的修改就可以定制Qt的输出信息。 ?

??不多说,先上代码!!!

使用例子

??新建一个名字为TestApp的应用。代码如下:

代码语言:javascript
复制
#include <QCoreApplication>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    qSetMessagePattern("%{appname} %{type} %{time [yyyy-MM-dd hh:mm:ss]} %{file} %{line} %{function} %{message}");
    qInfo()    << "Hello world";
    qDebug()   << "Hello world";
    qWarning() << "Hello world";

    return a.exec();
}

??输出:

代码语言:javascript
复制
TestApp info [2020-04-13 23:01:11] ..\TestApp\main.cpp 8 main Hello world
TestApp debug [2020-04-13 23:01:11] ..\TestApp\main.cpp 9 main Hello world
TestApp warning [2020-04-13 23:01:11] ..\TestApp\main.cpp 10 main Hello world

使用

「通过设置qSetMessagePattern函数去更改默认的消息。」 ??一般常用的格式字符串有:

格式

含义

%{appname}

程序名字,等价于QCoreApplication::applicationName()

%{type}

输出类型如:"debug","warning","critical"或"fatal"

%{time [format]}

消息的时间格式,等价于:QDateTime::toString()

%{file}

打印所在的文件

%{line}

打印所在文件的行号

%{function}

打印所在的函数

%{message}

打印的消息

注意:

  1. qSetMessagePattern从Qt 5.0引入。
  2. 只能打印Qt的调试输出如:qDebug,qInfo,qWarning,qCritical,qFatal。而printf,cout将会原样输出。
本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-13,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 Qt君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用例子
  • 使用
  • 注意:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com