QT 调试信息如何输出到文件(qDebug/qWarning/qCritical/qFatal) 您所在的位置:网站首页 qt中qdebug打印不出来 QT 调试信息如何输出到文件(qDebug/qWarning/qCritical/qFatal)

QT 调试信息如何输出到文件(qDebug/qWarning/qCritical/qFatal)

2024-07-11 15:10| 来源: 网络整理| 查看: 265

一、基本分类 qDebug : 调试信息提示 qWarning: 一般的警告提示 qCritical: 严重错误提示 qFatal: 致命错误提示

二、截获信息 Qt提供了qInstallMsgHandler 方法用来定制消息发生后如何来处理。 qInstallMsgHandler 是一个回调函数,主要是由qDebug、qWarning、qCritical、qFatal这些函数进行触发。也就是说,qDeubg这些函数处理的消息文本会被qInstallMsgHandler 所指向的回调函数截获,这样就允许用户自己来处理这些消息文本。

三、示例代码 将qDebug、qWarning、qCritical、qFatal这些函数输出的信息,保存到日志文件。

#include #include #include #include #include #include static QMutex mutex; void customMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg) { //Q_UNUSED(context) QDateTime _datetime = QDateTime::currentDateTime(); QString szDate = _datetime.toString("yyyy-MM-dd hh:mm:ss.zzz");//"yyyy-MM-dd hh:mm:ss ddd" QString txt(szDate); switch (type) { case QtDebugMsg://调试信息提示 { txt += QString(" [Debug] "); break; } case QtInfoMsg://信息输出 { txt += QString(" [Info] "); break; } case QtWarningMsg://一般的warning提示 { txt += QString(" [Warning] "); break; } case QtCriticalMsg://严重错误提示 { txt += QString(" [Critical] "); break; } case QtFatalMsg://致命错误提示 { txt += QString(" [Fatal] "); //abort(); break; } default: { txt += QString(" [Trace] "); break; } } txt.append( QString(" %1").arg(context.file) ); txt.append( QString(": ").arg(context.line) ); txt.append(msg); mutex.lock(); QFile file("log.txt"); file.open(QIODevice::WriteOnly | QIODevice::Append); QTextStream text_stream(&file); text_stream


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有