SVET/docs/ru/interfaces/logger.md
2024-06-14 20:48:45 +03:00

3.6 KiB
Raw Blame History

Logger

Введение

Логирование неотъемлимая часть программирования, соответственно было бы глупо утверждать что в этом проекте его не будет. Класс Logger представляет из себя интерфейс взаимодействия с конечным пользователем посредством Serial порта используя переферийное ядро как показано на диаграмме.

Logger IO Arch

Можно заметить что все сервисы внутри ядра SVET передают в логгер информацию для удобства отладки и программирования. Это поведение можно настроить(например отключить логи ядра полностью) при создании класса SVET с помощью SVETBuilder. Так же, можно заметить что логгер находится за пределами ядра и является интерфейсом взаимодействия с пользователем. Это означает что его можно использовать для своих собственных целей даже если логирование самого ядра отключено. Для этого у класса Logger есть публичные методы для логирования.

Публичные методы:

Info

void Info(char* data, char* initiator = nullptr);

Метод для логирования информации.

Где data - строка с сообщением которое нужно отобразить

Где initiator - строка которая отображает от кого поступил лог

Пример отображения в Serial мониторе:

[INFO] Core: Core never changes //Сообщение от ядра
[INFO]: Hello world! //Если initiator не передан
[INFO] main.cpp: Hello world! //Если initiator передан и не равен nullptr

Warn

void Warn(char* data, char* initiator = nullptr);

Метод для логирования информации требующей внимания.

Где data - строка с сообщением которое нужно отобразить

Где initiator - строка которая отображает от кого поступил лог

Пример отображения в Serial мониторе:

[WARN] Core: Core will changed... //Сообщение от ядра
[WARN]: Hello warn! //Если initiator не передан
[WARN] main.cpp: Hello world! //Если initiator передан и не равен nullptr

Error

void Error(char* data, char* initiator = nullptr);

Метод для логирования информации об ошибке.

Где data - строка с ошибкой которую нужно отобразить

Где initiator - строка которая отображает от кого поступил лог

Пример отображения в Serial мониторе:

[ERROR] Core: Core changed!!! //Сообщение от ядра
[ERROR]: Exception! //Если initiator не передан
[ERROR] main.cpp: Hello world! //Если initiator передан и не равен nullptr