In QT werden Debugging -Informationen häufig mit qdebug () und anderen ähnlichen Aussagen auf der Konsole gedruckt. Es kann nützlich sein, diese Ausgabe stattdessen in eine Datei umzuleiten, insbesondere für die plattformübergreifende Entwicklung. Dies vermeidet die Verwendung von Shell -Skripten und liefert eine konsistentere Lösung.
, um die Debug -Ausgabe umzuleiten, bietet QT die Funktion qinstallmessageHandler (). Auf diese Weise können Sie einen benutzerdefinierten Nachrichtenhandler installieren, der die Nachrichten verarbeitet, bevor sie gedruckt werden. Hier ist ein Beispiel Handler:
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();
}
}
Dieser Handler gibt die Nachrichten an stderr aus, aber Sie können STDERR durch einen Dateistrom ersetzen, um die Ausgabe umzuleiten.
, um den benutzerdefinierten Handler zu installieren, QinstallMessageHandler () in Ihrem Main () zu installieren (). Funktion:
qInstallMessageHandler(myMessageOutput);
Nach der Installation werden alle QDebug und ähnliche Nachrichten an den Handler weitergeleitet und in die Datei geschrieben oder streamen, die Sie angegeben haben.
.Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3