QT5 qDebug 输出到文件
程序员文章站
2022-03-31 11:30:31
...
QT4的做法和QT5有差异, QT5中已经废除了qInstallMsgHandler .
具体实现:
#include "mainwindow.h"
#include <QApplication>
#include <QFile>
#include <QTextStream>
#include <QDebug>
#include <QDateTime>
#include <iostream>
using namespace std;
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
void customMessageHandler(QtMsgType type, const QMessageLogContext &, const QString & str)
{
QString txt=str;
#else
void customMessageHandler(QtMsgType type, const char *msg)
{
QString txt(msg);
#endif
QFile outFile("debug.log");
outFile.open(QIODevice::WriteOnly | QIODevice::Append);
QTextStream ts(&outFile);
ts << txt << endl;
//输出到控制台
QDateTime now = QDateTime::currentDateTime();
cout << now.toString("hh:mm:ss.zzz").toStdString() << " "<< txt.toStdString() <<endl;}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
qInstallMessageHandler(customMessageHandler);
#else
qInstallMsgHandler(customMessageHandler);
#endif
qDebug()<<"test11";
qDebug()<<"test22";
return a.exec();
}
此时会在目录下生成debug.log文件。