Qt Qdebug 实现重定向到文件

#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
posted @   愿得入睡  阅读(106)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示