67#define LOG_INFO(logger, message) \
68 (logger).writeLog(LogLevel::INFO, __FUNCTION__, __LINE__, (message))
70#define LOG_DEBUG(logger, message) \
71 (logger).writeLog(LogLevel::DEBUG, __FUNCTION__, __LINE__, (message))
73#define LOG_WARNING(logger, message) \
74 (logger).writeLog(LogLevel::WARNING, __FUNCTION__, __LINE__, (message))
76#define LOG_ERROR(logger, message) \
77 (logger).writeLog(LogLevel::ERR, __FUNCTION__, __LINE__, (message))
80#define LOG_FAILURE(logger, message) \
82 (logger).writeLog(LogLevel::FAILURE, __FUNCTION__, __LINE__, (message)); \
83 Logger::triggerFatalCrash((message)); \
115 explicit Logger(
const std::string& motorName);
140 const char* functionSignature,
142 const std::string& message);
222 const std::string& className,
223 const std::string& functionName,
225 const std::string& message);
LogLevel
Niveaux de sévérité des traces, du moins critique au plus critique.
Definition Logger.h:49
@ WARNING
Anomalie non-bloquante.
@ FAILURE
Erreur fatale — plante l'application après journalisation.
@ ERR
Erreur bloquante récupérable.
@ DEBUG
Trace de débogage interne.
Journaliseur associé à un moteur nommé.
Definition Logger.h:99
std::mutex m_writeMutex
Protection mutex pour les accès concurrents.
Definition Logger.h:180
std::ofstream m_outputFile
Flux d'écriture vers le fichier de log.
Definition Logger.h:179
LogLevel m_minimumLevel
Niveau minimum de filtrage.
Definition Logger.h:181
static std::string getCurrentTimestamp()
Retourne l'horodatage courant au format [HH:MM:SS].
Definition Logger.cpp:243
static std::string extractClassName(const std::string &functionSignature)
Extrait le nom de classe depuis la signature MSVC "__FUNCTION__".
Definition Logger.cpp:162
const std::string & getMotorName() const
Retourne le nom du moteur associé à cette instance.
Definition Logger.cpp:133
Logger & operator=(const Logger &)=delete
static std::string formatLogLine(LogLevel level, const std::string &className, const std::string &functionName, int lineNumber, const std::string &message)
Formate une ligne de trace complète.
Definition Logger.cpp:206
static void sendToDebugOutput(const std::string &text)
Envoie une chaîne vers la sortie de débogage Visual Studio.
Definition Logger.cpp:259
static std::string extractFunctionName(const std::string &functionSignature)
Extrait le nom de la fonction depuis la signature MSVC "__FUNCTION__".
Definition Logger.cpp:192
~Logger()
Definition Logger.cpp:83
static std::string levelToString(LogLevel level)
Convertit un LogLevel en chaîne courte pour l'affichage.
Definition Logger.cpp:229
void writeLog(LogLevel level, const char *functionSignature, int lineNumber, const std::string &message)
Écrit une ligne de trace dans le fichier et la sortie de débogage.
Definition Logger.cpp:96
Logger(const Logger &)=delete
void setMinimumLogLevel(LogLevel minimumLevel)
Définit le niveau minimum en dessous duquel les traces sont ignorées.
Definition Logger.cpp:127
static void triggerFatalCrash(const std::string &errorMessage)
Provoque l'arrêt immédiat de l'application après affichage d'une boîte de dialogue.
Definition Logger.cpp:143
std::string m_motorName
Nom du moteur (identifiant du fichier log).
Definition Logger.h:178