17 Авг 2026
Контекст потока в логировании C++: thread-local context в logme
Хороший лог должен отвечать не только на вопрос «что произошло», но и давать контекст: с каким запросом, соединением, клиентом или фоновой задачей связано сообщение. Пока программа небольшая, нужные данные легко добавить прямо в текст: LogmeI( "Request %s: loading profile for user %d" , requestId , userId ); Проблема начинается глубже в стеке вызовов. requestId нужен
28 Июл 2026
Настраиваем уровень логирования подсистем Logme
В многокомпонентном приложении один канал логирования часто используется сразу несколькими компонентами. Logme позволяет задать отдельный уровень логирования подсистемы, не меняя уровень всего канала. Благодаря этому можно включить DEBUG только для проблемного компонента или, наоборот, подавить слишком частые INFO-сообщения одной подсистемы. Представим сервер, в котором подсистемы HTTP, TLS, AUTH и POLICY пишут в один журнал: 2026-07-28
27 Июл 2026
Профилирование источников логирования: какая строка создаёт нагрузку?
Как профилирование источников логирования связывает нагрузку на CPU и файловый ввод-вывод с конкретными конструкциями C и C++, не отключая рабочую диагностику Профилирование источников логирования начинается там, где обычный CPU-профайлер останавливается. Системный профайлер умеет показать, что заметную долю процессорного времени потребляет поток логирования, а в верхней части профиля находятся write(), worker файлового backend, синхронизация очереди, копирование
05 Июл 2026
Каналы logme — это не просто именованные логгеры
Каналы logme часто сначала воспринимают как обычные имена логгеров: есть HTTP, DB, TLS, UI, и каждый вызов просто попадает в лог с соответствующей меткой. Но каналы logme устроены иначе. Канал — это полноценный runtime-объект, который определяет, будет ли сообщение принято, как оно будет оформлено, куда оно пойдет дальше и какие backend-ы получат его в итоге.