我们知道在qt中可以通过引入QDebug来输出各种日志信息,比如qDebug()、qInfo()等等,默认情况下这个信息是在控制台输出的,其实我们也可以把这个信息拦截一下重定向到日志文件,下面我们看代码:
#include "mainwindow.h"
#include <QApplication>
#include <iostream>
#include <QDebug>
#include <QDateTime>
void customMessageHandler(QtMsgType type, const QMessageLogContext& context, const QString& msg)
{
QString localMsg=QDateTime::currentDateTime().toString("[yyyy-MM-dd hh:mm:ss] ");
localMsg.append(msg);
switch (type) {
case QtDebugMsg:
std::cout<< localMsg.toLocal8Bit().constData() << std::endl;
break;
case QtInfoMsg:
std::cout<< localMsg.toLocal8Bit().constData() << std::endl;
break;
default:
break;
}
}
int main(int argc, char *argv[])
{
qInstallMessageHandler(customMessageHandler);
qDebug()<<"are you ok?";
qInfo()<<"123";
std::cout << "i am ok!" << std::endl;
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}