Категория: С++

Каналы logme — это не просто именованные логгеры

Каналы logme часто сначала воспринимают как обычные имена логгеров: есть HTTP, DB, TLS, UI, и каждый вызов просто попадает в лог с соответствующей меткой. Но каналы logme устроены иначе. Канал — это полноценный runtime-объект, который определяет, будет ли сообщение принято, как оно будет оформлено, куда оно пойдет дальше и какие backend-ы получат его в итоге.

Переход с glog на logme: LOG, CHECK, PLOG и VLOG в новой модели

Переход с glog на logme не обязан начинаться с полной переписи всех мест логирования. В больших C++ проектах это почти всегда плохая идея. Логи разбросаны по коду, рядом с ними часто есть проверки, условия, диагностические сообщения, CHECK, PLOG, VLOG и debug-only вызовы. Если пытаться заменить все сразу, легко получить огромный diff и потерять уверенность в

Переход со spdlog на logme: от logger и sinks к channel и backend

Миграция со spdlog на logme не должна быть механической заменой имен функций. На поверхности обе библиотеки делают похожую работу: приложение вызывает logging API, сообщение получает уровень, форматируется и попадает в файл, консоль или другой output. Но переход имеет смысл не ради другой записи той же самой строки. Главная причина — другая модель управления логами в

Runtime control в production

Runtime control в production нужен для ситуаций, когда проблема существует только в уже запущенном процессе. Подробный debug-log может быть необходим именно в момент инцидента, но держать его включенным постоянно нельзя: он создает шум, увеличивает объем файлов и иногда заметно нагружает горячие участки приложения. Самый простой подход — изменить конфигурацию и перезапустить сервис. Но перезапуск часто