|
Simulateur Ferroviaire
Reconstruction et visualisation d'un réseau ferroviaire à partir de données GeoJSON — Win32 / WebView2 / Leaflet
|
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>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... | |
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) :
| #define LOG_DEBUG | ( | logger, | |
| message | |||
| ) | (logger).writeLog(LogLevel::DEBUG, __FUNCTION__, __LINE__, (message)) |
| #define LOG_ERROR | ( | logger, | |
| message | |||
| ) | (logger).writeLog(LogLevel::ERR, __FUNCTION__, __LINE__, (message)) |
| #define LOG_FAILURE | ( | logger, | |
| message | |||
| ) |
LOG_FAILURE journalise et appelle Logger::triggerFatalCrash() — ne retourne jamais.
| #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.
| #define LOG_WARNING | ( | logger, | |
| message | |||
| ) | (logger).writeLog(LogLevel::WARNING, __FUNCTION__, __LINE__, (message)) |
|
strong |