Qt 自定义日志输出处理
qDebug qInfo qWarning qCritical
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a162f17afc9efb54e6c8600e4df77d8a.png)
代码
#include <QApplication>
#include <QtCore>
#include <QMessageBox>
void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
QByteArray localMsg = msg.toLocal8Bit();
switch (type) {
case QtDebugMsg:
QMessageBox::information(nullptr,"information" , QString().sprintf("%s (%s:%u, %s)",localMsg.constData(), context.file, context.line, context.function));
break;
case QtInfoMsg:
QMessageBox::information(nullptr,"information" , QString().sprintf("%s (%s:%u, %s)",localMsg.constData(), context.file, context.line, context.function));
break;
case QtWarningMsg:
QMessageBox::warning(nullptr,"warning" , QString().sprintf("%s (%s:%u, %s)",localMsg.constData(), context.file, context.line, context.function));
break;
case QtCriticalMsg:
QMessageBox::critical(nullptr,"critical" , QString().sprintf("%s (%s:%u, %s)",localMsg.constData(), context.file, context.line, context.function));
break;
case QtFatalMsg:
QMessageBox::critical(nullptr,"critical" , QString().sprintf("%s (%s:%u, %s)",localMsg.constData(), context.file, context.line, context.function));
break;
}
}
int main(int argc, char *argv[])
{
qInstallMessageHandler(myMessageOutput);
QApplication a(argc, argv);
qDebug("debug");
qInfo("info");
qWarning("warning");
qCritical("critical");
QMessageLogger(QT_MESSAGELOG_FILE, QT_MESSAGELOG_LINE,QT_MESSAGELOG_FUNC,"cate1").debug("debug");
QMessageLogger(QT_MESSAGELOG_FILE, QT_MESSAGELOG_LINE,QT_MESSAGELOG_FUNC,"cate1").noDebug("noDebug");
QMessageLogger(QT_MESSAGELOG_FILE, QT_MESSAGELOG_LINE,QT_MESSAGELOG_FUNC,"cate1").info("info");
QMessageLogger(QT_MESSAGELOG_FILE, QT_MESSAGELOG_LINE,QT_MESSAGELOG_FUNC,"cate1").warning("warning");
QMessageLogger(QT_MESSAGELOG_FILE, QT_MESSAGELOG_LINE,QT_MESSAGELOG_FUNC,"cate1").critical("critical");
qInstallMessageHandler(0);
qDebug("debug");
qInfo("info");
qWarning("warning");
qCritical("critical");
QMessageLogger(QT_MESSAGELOG_FILE, QT_MESSAGELOG_LINE,QT_MESSAGELOG_FUNC,"cate1").debug("debug");
QMessageLogger(QT_MESSAGELOG_FILE, QT_MESSAGELOG_LINE,QT_MESSAGELOG_FUNC,"cate1").noDebug("noDebug");
QMessageLogger(QT_MESSAGELOG_FILE, QT_MESSAGELOG_LINE,QT_MESSAGELOG_FUNC,"cate1").info("info");
QMessageLogger(QT_MESSAGELOG_FILE, QT_MESSAGELOG_LINE,QT_MESSAGELOG_FUNC,"cate1").warning("warning");
QMessageLogger(QT_MESSAGELOG_FILE, QT_MESSAGELOG_LINE,QT_MESSAGELOG_FUNC,"cate1").critical("critical");
int nRetCode = a.exec();
return nRetCode;
}