#include <QApplication>
#include <QFile>
#include <QDebug>
void customMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
QString txtMessage;
switch (type)
{
case QtDebugMsg: //调试信息提示
txtMessage = QString("Debug: %1").arg(msg);
break;
case QtWarningMsg: //一般的warning提示
txtMessage = QString("Warning: %1").arg(msg);
break;
case QtCriticalMsg: //严重错误提示
txtMessage = QString("Critical: %1").arg(msg);
break;
case QtFatalMsg: //致命错误提示
txtMessage = QString("Fatal: %1").arg(msg);
abort();
}
//保存输出相关信息到指定文件
QFile outputFile("customMessageLog.txt");
outputFile.open(QIODevice::WriteOnly | QIODevice::Append);
QTextStream textStream(&outputFile);
textStream << txtMessage;
textStream << "\r\n";
outputFile.flush();
outputFile.close();
}
int main( int argc, char * argv[] ) //demo示例
{
QApplication app( argc, argv );
//MainWindow w;
//w.show();
qInstallMessageHandler(customMessageHandler); //注册MsgHandler回调函数
//以后就可以像下面这样直接打日志到文件中,而且日志也会包含时间信息
qDebug("This is a debug message");
qWarning("This is a warning message");
qCritical("This is a critical message");
//qFatal("This is a fatal message");
return app.exec();
}