# 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