Sonata

spdlog: быстрая библиотека логирования для C++

spdlog — быстрая библиотека логирования для C++. Доступна в двух вариантах: header-only (достаточно скопировать папку include и использовать компилятор с поддержкой C++11) и скомпилированная, которая рекомендуется из-за заметно меньшего времени сборки.

Библиотека работает на Linux, FreeBSD, OpenBSD, Solaris, AIX, Windows (MSVC 2013+, cygwin), macOS (clang 3.5+) и Android. Установка возможна через множество пакетных менеджеров: Debian, Homebrew, MacPorts, FreeBSD, Fedora, Gentoo, Arch Linux, openSUSE, ALT Linux, vcpkg, conan, conda, build2.

Форматирование построено на библиотеке fmt и поддерживает пользовательские шаблоны и собственные флаги в паттерне. Есть опциональный асинхронный режим, однопоточные и многопоточные логгеры, а также фильтрация уровней логирования во время компиляции и выполнения.

Среди приёмников вывода: ротируемые и ежедневные файлы, консоль с цветами, syslog, журнал событий Windows, отладчик Windows и виджеты Qt. Список легко расширяется собственными приёмниками, а уровни можно загружать из переменных окружения или argv.

Отдельно стоит отметить backtrace: отладочные сообщения хранятся в кольцевом буфере и выводятся по требованию. Доступны периодический сброс буфера, секундомер, вывод бинарных данных в hex, пользовательские обработчики событий и ошибок.

Бенчмарки для синхронного и асинхронного режимов проводились на Ubuntu 64 bit, Intel i7-4770 CPU @ 3.40GHz.

Подробная документация и примеры использования собраны в вики-страницах проекта.

GitHub ★ 29,341

Загрузка страницы