"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo redirigir Qdebug, Qwarning y Qcritical Sutened en QT?

¿Cómo puedo redirigir Qdebug, Qwarning y Qcritical Sutened en QT?

Publicado el 2025-03-07
Navegar:459

How can I redirect QDebug, QWarning, and QCritical output in Qt?

Redireccionando Qdebug, Qwarning y Qcritical Output

en Qt, la información de depuración a menudo se imprime en la consola usando qdebug () y otras declaraciones similares. Puede ser útil redirigir esta salida a un archivo, especialmente para el desarrollo de la plataforma cruzada. Esto evita el uso de scripts de shell y proporciona una solución más consistente.

personalizado de mensajes personalizados

para redirigir la salida de depuración, Qt proporciona la función QinstallMessageHandler (). Esto le permite instalar un controlador de mensajes personalizado que procesa los mensajes antes de que se impriman. Aquí hay un manejador de ejemplo:

void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
    QByteArray localMsg = msg.toLocal8Bit();
    switch (type) {
    case QtDebugMsg:
        fprintf(stderr, "Debug: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
        break;
    case QtInfoMsg:
        // ...
    case QtWarningMsg:
        // ...
    case QtCriticalMsg:
        // ...
    case QtFatalMsg:
        fprintf(stderr, "Fatal: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
        abort();
    }
}

Este controlador emite los mensajes a Stderr, pero puede reemplazar Stderr con una secuencia de archivo para redirigir la salida.

instalación

para instalar el controlador personalizado, llame a QinstallMessageHandler () en su principal () Función:

qInstallMessageHandler(myMessageOutput);

Una vez instalado, todos los mensajes Qdebug y similares se redirigirán al controlador y se escriben en el archivo o transmisión que especificó.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3