Логирование
RUSEON Core использует библиотеку rs/zerolog для высокопроизводительного структурированного логирования без аллокаций.
Формат логов
По умолчанию логи выводятся в формате JSON, что упрощает их сбор в ELK, Loki или Datadog. При интерактивном запуске ConsoleWriter обеспечивает цветной вывод в консоль.
Логи стандартной библиотеки Go (например, от HTTP серверов) перехватываются и маршрутизируются в zerolog на уровне Warn, предотвращая фрагментацию.
Уровни логирования
- InfoLevel (По умолчанию): Стандартные события (запуск сервера, подключение потока).
- DebugLevel: Детальный парсинг кадров, операции БД. Включается флагом
debug: trueв конфиге. - WarnLevel: Некритические проблемы (переподключение).
- ErrorLevel: Серьезные ошибки (ошибка записи на диск).
Логи в реальном времени (SSE)
RUSEON Core имеет встроенный GlobalBroadcaster на основе SSE (Server-Sent Events). Это позволяет авторизованным клиентам получать поток логов прямо в UI браузера без необходимости tail-ить файлы на сервере.