em qt, as informações de depuração são frequentemente impressas no console usando qdebug () e outras declarações semelhantes. Pode ser útil redirecionar essa saída para um arquivo, especialmente para o desenvolvimento de plataformas cruzadas. Isso evita o uso de scripts do shell e fornece uma solução mais consistente.
para redirecionar a saída de depuração, o QT fornece a função QinstalmessageHandler (). Isso permite que você instale um manipulador de mensagens personalizado que processe as mensagens antes de serem impressas. Aqui está um exemplo manipulador:
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 manipulador gera as mensagens para Stderr, mas você pode substituir o Stderr por um fluxo de arquivo para redirecionar a saída. função:
Depois de instalado, todas as mensagens Qdebug e similares serão redirecionadas para o manipulador e escritas no arquivo ou stream que você especificou.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3