生活随笔
收集整理的這篇文章主要介紹了
Qt中qDebug()技巧初探
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- Qt中qDebug()技巧初探
- 一、發布時屏蔽debug 消息
- 二、debug 程序定位
- 三、Qt利用qDebug輸出信息到文件
Qt中qDebug()技巧初探
一、發布時屏蔽debug 消息
發布程序時,去掉debug打印,可以加快程序執行速度,減小程序體積。
然而手動注釋很麻煩,在pro文件里加上一行預定義宏即可。
DEFINES QT_NO_DEBUG_OUTPUT
二、debug 程序定位
例如:qDebug() << FILE << LINE << message;
這樣debug小消息message就可以定位在程序文件中的某一行了。
三、Qt利用qDebug輸出信息到文件
新建dlog.h
#ifndef DLOG_H
#define DLOG_H
#include <qapplication.h>
#include <QDateTime>
#include <QFile>
#include <QTextStream>
#include <QtMsgHandler>
#include <QMessageLogContext>
#include <QMutex>void myMsgOutput(QtMsgType type
, const QMessageLogContext
&context
, const QString
& msg
)
{static QMutex mutex
;mutex
.lock();QString time
=QDateTime
::currentDateTime().toString(QString("[ yyyy-MM-dd HH:mm:ss:zzz ]"));QString mmsg
;switch(type
){case QtDebugMsg
:mmsg
=QString("%1: Debug:\t%2 (file:%3, line:%4, func: %5)").arg(time
).arg(msg
).arg(QString(context
.file
)).arg(context
.line
).arg(QString(context
.function
));break;case QtInfoMsg
:mmsg
=QString("%1: Info:\t%2 (file:%3, line:%4, func: %5)").arg(time
).arg(msg
).arg(QString(context
.file
)).arg(context
.line
).arg(QString(context
.function
));break;case QtWarningMsg
:mmsg
=QString("%1: Warning:\t%2 (file:%3, line:%4, func: %5)").arg(time
).arg(msg
).arg(QString(context
.file
)).arg(context
.line
).arg(QString(context
.function
));break;case QtCriticalMsg
:mmsg
=QString("%1: Critical:\t%2 (file:%3, line:%4, func: %5)").arg(time
).arg(msg
).arg(QString(context
.file
)).arg(context
.line
).arg(QString(context
.function
));break;case QtFatalMsg
:mmsg
=QString("%1: Fatal:\t%2 (file:%3, line:%4, func: %5)").arg(time
).arg(msg
).arg(QString(context
.file
)).arg(context
.line
).arg(QString(context
.function
));abort();}QFile
file("debug.txt");file
.open(QIODevice
::ReadWrite
| QIODevice
::Append
);QTextStream
stream(&file
);stream
<< mmsg
<< "\r\n";file
.flush();file
.close();mutex
.unlock();
}#endif
修改main.cpp
#include "tool/dlog.h"
qInstallMessageHandler(myMsgOutput
);
pro文件
DEFINES
+= QT_MESSAGELOGCONTEXT
總結
以上是生活随笔為你收集整理的Qt中qDebug()技巧初探的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。