несколько целей вывода: файл, консоль cmd и дебажная консоль
возможность задавать уровни важности(severity) логгирования для каждой из каналов(debug, info, warn, error, critical)
поддержка каналов
поддержка printf'овоподобной функциональности
дополнительно:
поддержка цветов в консоли
например:
LoggingManager("Audio")->warning("failed to play %s sound", "Explosion");
выведет
[WARN][Audio][000107][04:40:40]: failed to play Explosion sound
где
WARN - severity
Audio - канал
warning - функция, выводящая severity в лог
000107 - номер кадра
04:40:40 - текущее время
и ещё пример настройки логгирования перед началом работы остальных систем:
auto criticalFileTarget = LoggingManager->AddFileTarget("critical.log");
criticalFileTarget->SetSeverity(Logging::Critical);
auto debugConsoleTarget = LoggingManager->AddCmdTarget();
debugConsoleTarget->SetSeverity(Logging::Debug);
в итоге у нас будет созданы 2 цели вывода critical.log, куда будут помещаться только сообщения критической важности, и вывод в стандартное консольное окно cmd, куда будут идти сообщения, начиная с debug.
дополнительно:
например:
LoggingManager("Audio")->warning("failed to play %s sound", "Explosion");
выведет[WARN][Audio][000107][04:40:40]: failed to play Explosion sound
где WARN - severity Audio - канал warning - функция, выводящая severity в лог 000107 - номер кадра 04:40:40 - текущее время
и ещё пример настройки логгирования перед началом работы остальных систем:
в итоге у нас будет созданы 2 цели вывода critical.log, куда будут помещаться только сообщения критической важности, и вывод в стандартное консольное окно cmd, куда будут идти сообщения, начиная с debug.