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

66 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Logger
## Введение
Логирование неотъемлимая часть программирования, соответственно было бы глупо утверждать что в этом проекте его не будет. Класс Logger представляет из себя интерфейс взаимодействия с конечным пользователем посредством **Serial** порта используя переферийное ядро как показано на диаграмме.
<p align="center">
<img src="https://github.com/Lisoveliy/SVET/blob/master/docs/LoggerIOArch.drawio.svg?raw=true" alt="Logger IO Arch"/>
</p>
Можно заметить что все сервисы внутри ядра 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
<hr>
### 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
<hr>
### 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