В qt информация отладки часто печатается в консоли с использованием qdebug () и других аналогичных утверждений. Вместо этого может быть полезно перенаправить этот вывод в файл, особенно для кроссплатформенного разработки. Это позволяет избежать использования сценариев оболочки и предоставляет более последовательное решение.
для перенаправления вывода отладки, QT предоставляет функцию QinstallMessageHandler (). Это позволяет вам установить пользовательский обработчик сообщений, который обрабатывает сообщения до их печати. Вот пример обработчика:
]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();
}
}
] Этот обработчик выводит сообщения в Stderr, но вы можете заменить stderr на потоку файла, чтобы перенаправить выход.
для установки пользовательского обработчика, Call QinstallMessageHandler () в магистрали () () function:
qInstallMessageHandler(myMessageOutput);
] после установки, все QDebug и аналогичные сообщения будут перенаправлены на обработчик и записаны в файл или поток.
]Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3