Bonjour,
je dois faire un logger pour une application qui comporte beaucoup de classes différentes. Et quasiment toutes ces classes ont besoin du logger.
Pour l'instant, l'en-tête de mon logger ressemble à ça (c'est un singleton):
J'aurais avoir votre avis sur 2 points:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 class Logger { public: // destructor ~Logger(); // get instance static Logger* GetInstance(); // log function void Log(std::string text); private: // constructor Logger(); // unique instance of Logger static Logger* m_instance; }; // initialization of the unique instance Logger* Logger::m_instance;
1/ J'aimerais utiliser mon logger en variable globale, de façon à ne pas avoir à faire passer une référence du logger à chacune des classes qui vont l'utiliser. Et j'aurais aimé instancier cette variable globale dans logger.h, de façon à ce que j'ai juste besoin d'inclure logger.h lorsque j'ai besoin du logger.
Mais je ne sais pas trop comment faire.
2/ J'ai besoin de passer des paramètres au constructeur (niveau de log par defaut, file descriptor du fichier log, ...). Le problème, c'est que le constructeur est appelé par GetInstance(), et que je ne peux raisonnablement pas passer des paramètres à GetInstance(). Comment faire donc?
Partager