Vous avez installer un gestionnaire de messages à l'aide de qInstallMsgHandler
de la fonction, et ensuite, vous pouvez utiliser QTextStream
écrire le debug message dans un fichier. Voici un exemple d'échantillon:
#include <qapplication.h>
#include <stdio.h>
#include <stdlib.h>
void myMessageOutput(QtMsgType type, const char *msg)
{
//in this function, you can write the message to any stream!
switch (type) {
case QtDebugMsg:
fprintf(stderr, "Debug: %s\n", msg);
break;
case QtWarningMsg:
fprintf(stderr, "Warning: %s\n", msg);
break;
case QtCriticalMsg:
fprintf(stderr, "Critical: %s\n", msg);
break;
case QtFatalMsg:
fprintf(stderr, "Fatal: %s\n", msg);
abort();
}
}
int main(int argc, char **argv)
{
qInstallMsgHandler(myMessageOutput); //install : set the callback
QApplication app(argc, argv);
...
return app.exec();
}
Prises à partir de la doc de qInstallMsgHandler
(j'ai seulement ajouté les commentaires):
Dans l'exemple ci-dessus, la fonction myMessageOutput
utilise stderr
qui vous voulez remplacer certains fichier de flux, ou complètement ré-écrire la fonction!
Une fois que vous écrivez et installer cette fonction, votre qDebug
(ainsi que qWarning
, qCritical
etc) messages serait redirigé vers le fichier que vous avez écrit dans le gestionnaire. :-)