当前位置 博文首页 > 木木木 的博客:Qt开发之路34---QProcess重定向子进程的日志输出

    木木木 的博客:Qt开发之路34---QProcess重定向子进程的日志输出

    作者:[db:作者] 时间:2021-08-20 21:35

    一:获取子进程的日志输出,输出到主进程

        QString appRootPath = qApp->applicationDirPath();
    
        QProcess *process = new QProcess();
        process->setWorkingDirectory(appRootPath + "/BG/");
        process->start(appRootPath + "/BG/TestApp.exe");
    
    
        QObject::connect(process, &QProcess::readyRead, [=](){
            QByteArray procOutput = process->readAll();
            qDebug()<<"TestApp:"<< procOutput.data();
        });
    
    

    子程序有标准输出流时,会发出QProcess::readyRead信号,通过此信号可以获取子进程的标准输出流内容。

    二:子程序的日志,重定向到文件 setStandardOutputFile

        QString appRootPath = qApp->applicationDirPath();
    
        QProcess *process = new QProcess();
        process->setStandardOutputFile("log_1.log");
        process->setWorkingDirectory(appRootPath + "/BG/");
        process->start(appRootPath + "/BG/TestApp.exe");
    

    通过setStandardOutputFile函数,把子程序的输出到指定文件log_1.log;
    此函数必须在start之前调用。

    上一篇:Qt开发之路33—启动外部进程QProcess
    下一篇:Qt开发之路35—设置程序(进程)优先级 SetPriorityClass

    cs