❝我们使用Qt库用的最多的调试输出是qDebug了,但是它输出单一。如果需要输出日期时间,行号等消息时都需要通过代码去实现似乎太过于繁琐。本文通过简单的配置,用最少的修改就可以定制Qt的输出信息。 ❞
不多说,先上代码!!!
使用例子新建一个名字为TestApp的应用。代码如下:
#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(); }输出:
TestApp info [2020-04-13 23:01:11] ..TestAppmain.cpp 8 main Hello world TestApp debug [2020-04-13 23:01:11] ..TestAppmain.cpp 9 main Hello world TestApp warning [2020-04-13 23:01:11] ..TestAppmain.cpp 10 main Hello world使用「通过设置qSetMessagePattern函数去更改默认的消息。」 一般常用的格式字符串有:
格式
含义
%{appname}
程序名字,等价于QCoreApplication::applicationName()
%{type}
输出类型如:"debug","warning","critical"或"fatal"
%{time [format]}
消息的时间格式,等价于:QDateTime::toString()
%{file}
打印所在的文件
%{line}
打印所在文件的行号
%{function}
打印所在的函数
%{message}
打印的消息
注意:qSetMessagePattern从Qt 5.0引入。只能打印Qt的调试输出如:qDebug,qInfo,qWarning,qCritical,qFatal。而printf,cout将会原样输出。 ---来自腾讯云社区的---Qt君
微信扫一扫打赏
支付宝扫一扫打赏