Bonjour, je cherche à coder une classe utilitaire qui me permettrait d'afficher des messages formatés dans un fichier de log.

J'ai fait de cette classe un singleton, et j'aimerais pouvoir l'utiliser de cette manière:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
ClasseDeLog::instance() << "Message à loguer" << variable << endl;
J'ai essayé plusieurs méthodes plus ou moins "propres", mais aucune ne fonctionne (erreurs de compilation), je n'arrive pas à utiliser les flux pour passser le message à mon objet log

En vrac, j'ai essayé de faire hériter mon objet de ofstream, mais apparement c++ interdit de retourner un stream, seulement un pointeur, et je ne veux pas avoir à passer par un pointeur. J'ai essayé d'utiliser un attribut de type fstream, même problème, je ne suis autorisé qu'à retourner un pointeur sur cet attribut.
Enfin en surchargeant l'opérateur << :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ostream& operator<< (ClasseDeLog& c, ostream& o){...}
, mais il semble que je ne peux pas faire comme ça, et je ne tiens pas à redefinir l'operateur << pour chaque type de message


Quel est le moyen le plus simple pour résoudre mon problème, en utilisant impérativement les flux, et en gardant la syntaxe que j'ai indiqué au début du message ?

D'avance merci pour vos conseils.
Xav