Dans Qt, les informations de débogage sont souvent imprimées sur la console à l'aide de qDebug() et d'autres instructions similaires. Il peut être utile de rediriger cette sortie vers un fichier, en particulier pour le développement multiplateforme. Cela évite d'utiliser des scripts shell et fournit une solution plus cohérente.
Pour rediriger la sortie de débogage, Qt fournit la fonction qInstallMessageHandler(). Cela vous permet d'installer un gestionnaire de messages personnalisé qui traite les messages avant leur impression. Voici un exemple de gestionnaire :
<code class="cpp">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(); } }</code>
Ce gestionnaire envoie les messages vers stderr, mais vous pouvez remplacer stderr par un flux de fichiers pour rediriger la sortie.
Vers installez le gestionnaire personnalisé, appelez qInstallMessageHandler() dans votre fonction main() :
<code class="cpp">qInstallMessageHandler(myMessageOutput);</code>
Une fois installés, tous les messages qDebug et similaires seront redirigés vers le gestionnaire et écrits dans le fichier ou le flux que vous avez spécifié.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!