首页 > 其他分享 >Qt Qdebug 实现重定向到文件

Qt Qdebug 实现重定向到文件

时间:2023-06-15 13:45:59浏览次数:34  
标签:case Qt break QString file Qdebug message include 重定向

#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>
#include <QtCore/QFile>
#include <QtCore/QTextStream>

// 自定义消息处理函数
void myMessageHandler(QtMsgType type, const char* msg)
{
    // 打开输出文件
    QFile file("debug.log");
    if (file.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Text)) {
        QTextStream stream(&file);

        // 设置消息格式
        QString message;
        switch (type) {
            case QtDebugMsg:
                message = QString("[Debug] ");
                break;
            case QtWarningMsg:
                message = QString("[Warning] ");
                break;
            case QtCriticalMsg:
                message = QString("[Critical] ");
                break;
            case QtFatalMsg:
                message = QString("[Fatal] ");
                break;
            default:
                break;
        }

        // 输出消息到文件
        stream << message << msg << endl;

        // 关闭文件
        file.close();
    }
}

int main(int argc, char* argv[])
{
    QCoreApplication app(argc, argv);

    // 设置自定义消息处理函数
    qInstallMsgHandler(myMessageHandler);

    // 示例使用QDebug输出
    qDebug() << "This is a debug message.";
    qWarning() << "This is a warning message.";
    qCritical() << "This is a critical message.";

    return app.exec();
}

/home/tronlong/workSpace/POCT-plugin/poct/poctclient.cpp:70: error: 'qInstallMessageHandler' was not declared in this scope
qInstallMsgHandler

标签:case,Qt,break,QString,file,Qdebug,message,include,重定向
From: https://www.cnblogs.com/wish-sleeping/p/17482616.html

相关文章

  • QT电影信息管理系统[2023-06-15]
    QT电影信息管理系统[2023-06-15]在某个RDBMS软件基础上,利用合适的应用系统开发工具开发一个数据库应用系统设计并实现一个电影信息管理系统;电影信息管理系统功能参考对电影进行增删改查操作;对电影属性(如导演、演员、类型、上映日期等)进行查询和统计;用户可以进行评分和评论,......
  • Qt编写精美输入法(历时十年迭代/可换肤/支持Qt4/5/6/win/linux/mac/嵌入式等)
    一、前言大概是从2012年就开始研究用Qt写输入法,因为项目需要,嵌入式板子上,没有对应的输入法,当初使用过很多NVR,里面也是鼠标按下弹出输入法面板进行输入,可以切换数字和字母及中文,于是借鉴着操作交互流程,用纯QWidget代码实现一个,当然最初的版本是非常简单和丑陋的,而且功能单一,能打字......
  • GUI编程--基于PyQt5(2)
    这部分简单介绍GUI编程应该学什么,大致的一个知识范围1.了解PyQt5的库结构下一章节进入实战。。。 ......
  • GUI编程--基于PyQt5(1)
    该系列主要介绍GUI编程的一些知识,来自网易课堂,王顺子课程。这部分主要是一些基础介绍,包括以下内容:GUI全称为:GraphicalUserInterface=  图形化用户接口简单理解就是:-使用Python开发出一个软件的界面,-让用户可以通过软件界面与软件进行交互;python有那些库支持GUI:我们......
  • GUI编程--基于PyQt5(3)
    本部分进入实战,尝试着写一个简单地界面,内容如图所示:箭头为要实现的内容,包括logo,名称,最小/大化,关闭程序,内容。1.首先创建一个py文件,如下图:2.敲代码:不要管每句话是什么意思,先实现,后面老师(王顺子)会具体讲的。fromPyQt5.Qtimport*importsysapp=QApplication(sys.argv)windo......
  • jqtreetable jquery-treeview
    jqtreetable[img]http://dl.iteye.com/upload/attachment/466717/80fc34ec-ed82-3c04-b2f4-5de688bbf990.jpg[/img]jquery-treeview[img]http://dl.iteye.com/upload/attachment/466715/3c0521cb-37e0-3fc6-8dfc-f438b48e8569.jpg[/img]......
  • Qt编写onvif工具(搜索/云台/预置位/OSD/录像存储)
    一、前言从最初编写这个工具开始的时间算起来,至少5年多,一直持续完善到今天,这个工具看起来小也不小大也不大,但是也是经历过无数个现场的洗礼,毫不夸张的说,市面上能够遇到的主流的厂商的设备,都测试过,而且做过大量设备的测试,并不是调试个一个两个的,也并不是在实验室环境中搞开发的,而......
  • 关于Qt **QNetworkAccessManager**、**QNetworkReply**、**QNetworkRequest**实现ftp
    实现的ftp下载需要反馈下载进度,但是代码得到的bytesTotal始终为-1,直到下载完成那一刻,才变成文件大小。于是分析qt5base的network部分代码:network/access/qnetworkaccessftpbackend.cpp文件中,有如下片段:voidQNetworkAccessFtpBackend::ftpRawCommandReply(intcode,constQStr......
  • 【pyqt】报错TypeError: decorated slot has no signature compatible with RecorderP
    一、场景  运行pyqt报错TypeError:decoratedslothasnosignaturecompatiblewithRecorderPlayerProxy.sig_mode_update[object] 二、代码@Slot(int)defupdate_mode(self,mode):...... 三、解决方法  将int去除即可  参考链接:p......
  • QT修改类名
    QT修改类名前言由于QT的自动生成,QT中修改类名往往导致各种编译错误。首先明确,修改类名的基本操作是使用QtCreater,右键->Refactor->RenameSymbolunderCursor情形1给普通类改名修改完类名后,直接清理项目重新构建即可情形2给界面类改名修改完类名后,注意修改在命名空间......