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.
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.
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ó.
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