Simulateur Ferroviaire
Reconstruction et visualisation d'un réseau ferroviaire à partir de données GeoJSON — Win32 / WebView2 / Leaflet
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Logger

Journaliseur associé à un moteur nommé. Plus de détails...

#include <Logger.h>

Graphe de collaboration de Logger:

Fonctions membres publiques

 Logger (const std::string &motorName)
 Construit un Logger pour le moteur spécifié.
 
 ~Logger ()
 
 Logger (const Logger &)=delete
 
Loggeroperator= (const Logger &)=delete
 
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.
 
void setMinimumLogLevel (LogLevel minimumLevel)
 Définit le niveau minimum en dessous duquel les traces sont ignorées.
 
const std::string & getMotorName () const
 Retourne le nom du moteur associé à cette instance.
 

Fonctions membres publiques statiques

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.
 

Fonctions membres privées statiques

static std::string extractClassName (const std::string &functionSignature)
 Extrait le nom de classe depuis la signature MSVC "__FUNCTION__".
 
static std::string extractFunctionName (const std::string &functionSignature)
 Extrait le nom de la fonction depuis la signature MSVC "__FUNCTION__".
 
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.
 
static std::string levelToString (LogLevel level)
 Convertit un LogLevel en chaîne courte pour l'affichage.
 
static std::string getCurrentTimestamp ()
 Retourne l'horodatage courant au format [HH:MM:SS].
 
static void sendToDebugOutput (const std::string &text)
 Envoie une chaîne vers la sortie de débogage Visual Studio.
 

Attributs privés

std::string m_motorName
 Nom du moteur (identifiant du fichier log).
 
std::ofstream m_outputFile
 Flux d'écriture vers le fichier de log.
 
std::mutex m_writeMutex
 Protection mutex pour les accès concurrents.
 
LogLevel m_minimumLevel
 Niveau minimum de filtrage.
 

Description détaillée

Journaliseur associé à un moteur nommé.

Chaque instance ouvre (ou crée) un fichier "Logs/<nomDuMoteur>.log". Les écritures sont protégées par un mutex pour la compatibilité multi-thread. Le niveau minimum de filtre est configurable par setMinimumLogLevel().

Documentation des constructeurs et destructeur

◆ Logger() [1/2]

Logger::Logger ( const std::string &  motorName)
explicit

Construit un Logger pour le moteur spécifié.

Crée le répertoire "Logs/" si absent, puis ouvre (mode append) le fichier "Logs/<motorName>.log".

Paramètres
motorNameNom du moteur (ex. "GeoParser", "Simulation"). Utilisé comme nom de fichier de log.

◆ ~Logger()

Logger::~Logger ( )

Destructeur — ferme proprement le fichier de log.

◆ Logger() [2/2]

Logger::Logger ( const Logger )
delete

Documentation des fonctions membres

◆ extractClassName()

std::string Logger::extractClassName ( const std::string &  functionSignature)
staticprivate

Extrait le nom de classe depuis la signature MSVC "__FUNCTION__".

Sur MSVC, "__FUNCTION__" retourne "NomDeClasse::NomDeFonction". Cette méthode retourne "NomDeClasse", ou une chaîne vide si aucun "::" n'est trouvé.

Paramètres
functionSignatureValeur de FUNCTION fournie par le préprocesseur.
Renvoie
Nom de la classe extraite, ou "" si non disponible.

◆ extractFunctionName()

std::string Logger::extractFunctionName ( const std::string &  functionSignature)
staticprivate

Extrait le nom de la fonction depuis la signature MSVC "__FUNCTION__".

Retourne la partie après le dernier "::". Si aucun "::" n'est présent, retourne la chaîne entière.

Paramètres
functionSignatureValeur de FUNCTION fournie par le préprocesseur.
Renvoie
Nom de la fonction extraite.

◆ formatLogLine()

std::string Logger::formatLogLine ( LogLevel  level,
const std::string &  className,
const std::string &  functionName,
int  lineNumber,
const std::string &  message 
)
staticprivate

Formate une ligne de trace complète.

Format : [HH:MM:SS] [NIVEAU] {NomDeClasse} [NomDeFonction] "Ligne : XX" : Message

Paramètres
levelNiveau de sévérité.
classNameNom de la classe (extrait de FUNCTION).
functionNameNom de la fonction (extrait de FUNCTION).
lineNumberNuméro de ligne source.
messageMessage utilisateur.
Renvoie
Chaîne formatée prête à écrire.

◆ getCurrentTimestamp()

std::string Logger::getCurrentTimestamp ( )
staticprivate

Retourne l'horodatage courant au format [HH:MM:SS].

Renvoie
Chaîne horodatage entre crochets.

◆ getMotorName()

const std::string & Logger::getMotorName ( ) const

Retourne le nom du moteur associé à cette instance.

Renvoie
Nom du moteur passé au constructeur.

◆ levelToString()

std::string Logger::levelToString ( LogLevel  level)
staticprivate

Convertit un LogLevel en chaîne courte pour l'affichage.

Paramètres
levelNiveau de trace.
Renvoie
Chaîne de 7 caractères max (ex. "INFO ", "WARNING").

◆ operator=()

Logger & Logger::operator= ( const Logger )
delete

◆ sendToDebugOutput()

void Logger::sendToDebugOutput ( const std::string &  text)
staticprivate

Envoie une chaîne vers la sortie de débogage Visual Studio.

Utilise OutputDebugStringA sur Windows. Sans effet sur les autres plateformes.

Paramètres
textTexte à envoyer à la sortie de débogage.

◆ setMinimumLogLevel()

void Logger::setMinimumLogLevel ( LogLevel  minimumLevel)

Définit le niveau minimum en dessous duquel les traces sont ignorées.

Par défaut : LogLevel::DEBUG (toutes les traces sont écrites).

Paramètres
minimumLevelNiveau minimum (inclus) à journaliser.

◆ triggerFatalCrash()

void Logger::triggerFatalCrash ( const std::string &  errorMessage)
static

Provoque l'arrêt immédiat de l'application après affichage d'une boîte de dialogue.

Appelé automatiquement par la macro LOG_FAILURE. Ne retourne jamais.

Paramètres
errorMessageMessage d'erreur affiché dans la boîte de dialogue.

◆ writeLog()

void Logger::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.

Méthode appelée directement par les macros LOG_*. Ne pas appeler manuellement — préférer les macros pour bénéficier du contexte automatique.

Paramètres
levelNiveau de sévérité de la trace.
functionSignatureSignature de la fonction appelante (FUNCTION).
lineNumberNuméro de ligne source (LINE).
messageTexte du message à journaliser.

Documentation des données membres

◆ m_minimumLevel

LogLevel Logger::m_minimumLevel
private

Niveau minimum de filtrage.

◆ m_motorName

std::string Logger::m_motorName
private

Nom du moteur (identifiant du fichier log).

◆ m_outputFile

std::ofstream Logger::m_outputFile
private

Flux d'écriture vers le fichier de log.

◆ m_writeMutex

std::mutex Logger::m_writeMutex
private

Protection mutex pour les accès concurrents.


La documentation de cette classe a été générée à partir des fichiers suivants :