Метка: logme
logme — это библиотека логирования для C/C++, которая позволяет управлять логами во время выполнения. Она дает возможность гибко включать и отключать логирование, перенаправлять сообщения в разные источники и ограничивать их объем без перезапуска приложения.
Согласно результатам тестирования производительности, на данные момент эта библиотека является одной из самых быстрых.
Библиотека помогает выстроить удобную и масштабируемую систему логирования: разработчик может настраивать уровни логов, маршрутизацию и форматирование через конфигурацию, а не через перекомпиляцию кода. Такой подход упрощает отладку и эксплуатацию приложений, особенно в продакшене.
Содержит уникальный функционал по реализации однократных сообщений, сообщений появляющихся в логах не чаще указанного периода, переименования потоков, исключения выполнения кода по подготовке вывода в отключенные каналы.
logme поддерживает сценарии раннего (boot) логирования, работу с конфигурацией из внешних источников и последующее объединение логов в единую систему. Благодаря этому приложение сохраняет диагностическую информацию даже на самых ранних этапах инициализации.
В сложных программных продуктах этап инициализации не тривиален и состоит как минимум из нескольких стадий. Может оказаться так, что какие-то ошибки происходят до того, до того, как логирование на раннем этапе станет доступным. В этом случае разработчику сложно понять, что именно произошло и в каком месте программы. Конечно же, систему логирования обычно инициализируют как можно
Основное назначение библиотек логирования — вовсе не максимальная производительность и даже не удобство интерфейса. Их ключевая задача — помогать создавать читаемые логи, с которыми можно эффективно разбираться при возникновении проблем в работе программы. Именно поэтому разработчики осознанно жертвуют частью процессорного времени и ресурсов системы: хорошо структурированный лог экономит на порядке больше времени при диагностике, чем
В библиотеку logme встроена мощная поддержка профилирования функций. Профилирование функций с logme это просто. Есть возможность, просто добавив один макрос, обеспечить вывод в лог информации о входе в функцию с указанием её имени, выходе из неё, а также при необходимости — печати параметров и возвращаемого значения. Это позволяет без особых усилий понять, как и когда
Что может быть проще, чем система логирования? Однако по мере роста проекта становится понятно, что выбор библиотеки логирования C++ — это не такой тривиальный вопрос, как кажется на первый взгляд. Вероятно, каждый, кто занимался программированием, так или иначе поучаствовал в её создании — хотя бы написав свою первую программу: #include <stdio.h> int main() {