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 du fichier Logger.h

Système de journalisation à 5 niveaux de trace, un fichier par moteur. Plus de détails...

#include <ctime>
#include <filesystem>
#include <fstream>
#include <mutex>
#include <sstream>
#include <string>
#include <windows.h>
Graphe des dépendances par inclusion de Logger.h:
Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

Aller au code source de ce fichier.

Classes

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

Macros

#define LOG_INFO(logger, message)    (logger).writeLog(LogLevel::INFO, __FUNCTION__, __LINE__, (message))
 
#define LOG_DEBUG(logger, message)    (logger).writeLog(LogLevel::DEBUG, __FUNCTION__, __LINE__, (message))
 
#define LOG_WARNING(logger, message)    (logger).writeLog(LogLevel::WARNING, __FUNCTION__, __LINE__, (message))
 
#define LOG_ERROR(logger, message)    (logger).writeLog(LogLevel::ERR, __FUNCTION__, __LINE__, (message))
 
#define LOG_FAILURE(logger, message)
 

Énumérations

enum class  LogLevel : int {
  DEBUG = 0 , INFO = 1 , WARNING = 2 , ERR = 3 ,
  FAILURE = 4
}
 Niveaux de sévérité des traces, du moins critique au plus critique. Plus de détails...
 

Description détaillée

Système de journalisation à 5 niveaux de trace, un fichier par moteur.

Chaque instance de Logger est associée à un moteur nommé (ex. "GeoParser"). Les traces sont écrites dans "Logs/<NomDuMoteur>.log" et sur la sortie de débogage Visual Studio.

Niveaux disponibles (ordre de sévérité croissant) : INFO — Événements nominaux (phases terminées, résultats attendus). DEBUG — État interne, valeurs intermédiaires, traces fines. WARNING — Anomalie non-bloquante (données douteuses, repli sur valeur par défaut). ERROR — Erreur bloquante récupérable (fichier absent, topologie invalide). FAILURE — Erreur fatale irrecupérable — journalise et plante l'application.

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

Utilisation via macros (injection automatique du contexte) :

Logger logger("GeoParser");
LOG_INFO(logger, "Fichier chargé : " + filePath);
LOG_DEBUG(logger, "Nœud créé à l'index " + std::to_string(nodeIndex));
LOG_WARNING(logger, "Branche trop courte : " + branchId);
LOG_ERROR(logger, "Fichier introuvable : " + filePath);
LOG_FAILURE(logger, "Topologie nulle — arrêt immédiat");
#define LOG_INFO(logger, message)
Definition Logger.h:67
#define LOG_WARNING(logger, message)
Definition Logger.h:73
#define LOG_FAILURE(logger, message)
Definition Logger.h:80
#define LOG_ERROR(logger, message)
Definition Logger.h:76
#define LOG_DEBUG(logger, message)
Definition Logger.h:70
Journaliseur associé à un moteur nommé.
Definition Logger.h:99

Documentation des macros

◆ LOG_DEBUG

#define LOG_DEBUG (   logger,
  message 
)     (logger).writeLog(LogLevel::DEBUG, __FUNCTION__, __LINE__, (message))

◆ LOG_ERROR

#define LOG_ERROR (   logger,
  message 
)     (logger).writeLog(LogLevel::ERR, __FUNCTION__, __LINE__, (message))

◆ LOG_FAILURE

#define LOG_FAILURE (   logger,
  message 
)
Valeur :
do { \
(logger).writeLog(LogLevel::FAILURE, __FUNCTION__, __LINE__, (message)); \
Logger::triggerFatalCrash((message)); \
} while (false)
@ FAILURE
Erreur fatale — plante l'application après journalisation.

LOG_FAILURE journalise et appelle Logger::triggerFatalCrash() — ne retourne jamais.

◆ LOG_INFO

#define LOG_INFO (   logger,
  message 
)     (logger).writeLog(LogLevel::INFO, __FUNCTION__, __LINE__, (message))

Sur MSVC, FUNCTION retourne "NomDeClasse::NomDeFonction". Les macros transmettent FUNCTION et LINE au Logger, qui en extrait le nom de classe et le nom de fonction.

◆ LOG_WARNING

#define LOG_WARNING (   logger,
  message 
)     (logger).writeLog(LogLevel::WARNING, __FUNCTION__, __LINE__, (message))

Documentation du type de l'énumération

◆ LogLevel

enum class LogLevel : int
strong

Niveaux de sévérité des traces, du moins critique au plus critique.

Valeurs énumérées
DEBUG 

Trace de débogage interne.

INFO 

Événement nominal.

WARNING 

Anomalie non-bloquante.

ERR 

Erreur bloquante récupérable.

FAILURE 

Erreur fatale — plante l'application après journalisation.