Bonjour,

Je cherche à exploiter les traces Qt pour déboguer une application en ajoutant comme information le module concerné.

J'ai alors regarder du côté de qInstallMessageHandler() pour enrichir l'information issue des macros qDebug, qWarning, qCritical et qFatal en définissant ma propre méthode qui répond à la signature imposée.
Seulement, le QMessageLogContext à partir duquel on peut récupérer des informations comme la ligne ou la fonction n'est pas fait pour contenir le module.

Que faire alors ?

1) Utiliser le paramètre category de QMessageLogger pour écrire dedans le module et donc ne pas passer par les macros qDebug, [...], qui n'exploitent pas ce paramètre pour les traces ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
#define qDebug QMessageLogger(__FILE__, __LINE__, Q_FUNC_INFO).debug
#define qWarning QMessageLogger(__FILE__, __LINE__, Q_FUNC_INFO).warning
#define qCritical QMessageLogger(__FILE__, __LINE__, Q_FUNC_INFO).critical
#define qFatal QMessageLogger(__FILE__, __LINE__, Q_FUNC_INFO).fatal
2) Se détacher du système offert par Qt et ne pas utiliser QtMessageHandler ?

3) Autre idée ?

Merci