Быстрая библиотека логирования для Go со структурированными записями, уровнями логирования и двумя API: Logger без аллокаций и более гибким SugaredLogger.
rs/zerolog
JSON-логгер для Go с нулевым числом аллокаций, цепочечным API, уровнями и семплированием логов, а также опциональным выводом в CBOR.
- Звёзды
- 12,519
- Форки
- 657
- Открытые issues
- 166
- Последний коммит
- 10 дней назад
Что это?
Zerolog — библиотека структурированного логирования для Go, которая записывает события в JSON или, при сборке с тегом, в CBOR. События формируются с помощью цепочечного API, добавляющего типизированные поля «ключ-значение» без reflection. Благодаря этому в типичных сценариях из бенчмарков аллокаций не возникает.
Библиотека поддерживает семь уровней логирования — от trace до panic, настройку уровня глобально и для отдельных логгеров, семплирование логов и хуки, добавляющие поля ко всем событиям. Интеграция с контекстом позволяет привязать логгер к context.Context, а затем получить его оттуда; пакет hlog предоставляет вспомогательные функции для обработчиков net/http. Также в библиотеке есть slog.Handler, позволяющий направлять записи из кода, использующего стандартный API log/slog, через zerolog.
Для локальной разработки zerolog.ConsoleWriter преобразует события в цветные, удобные для чтения строки, но работает медленнее JSON-режима и не предназначен для production. Трассировки стека для ошибок доступны в подпакете pkgerrors.
Ключевые возможности
- 01Цепочечный API для записи JSON или CBOR без reflection и аллокаций в типичных сценариях
- 02Семь уровней логирования с глобальной настройкой уровня
- 03Семплирование логов, включая burst- и basic-семплеры
- 04Хуки для добавления полей ко всем событиям
- 05Интеграция с context.Context, обработчиками net/http и log/slog
- 06ConsoleWriter для цветного вывода при локальной разработке
Сценарии использования
- Логирование высоконагруженных сервисов на Go, где важны накладные расходы на аллокации
- Формирование структурированных JSON-логов для передачи в системы агрегации логов
- Добавление полей, связанных с запросом, в логи HTTP-серверов
- Подключение JSON-бэкенда к существующему коду на основе slog
Быстрый старт
- 1
Установите модуль
go get -u github.com/rs/zerolog/log - 2
Импортируйте глобальный логгер и запишите сообщение в журнал
Что важно знать
- Ориентирован на структурированный вывод в формате JSON (или CBOR); для удобного вывода в консоль потребуется менее эффективный ConsoleWriter.
В подборках
Темы
Частые вопросы
- Что такое zerolog?
- JSON-логгер для Go с нулевым числом аллокаций, цепочечным API, уровнями и семплированием логов, а также опциональным выводом в CBOR. Zerolog — библиотека структурированного логирования для Go, которая записывает события в JSON или, при сборке с тегом, в CBOR. События формируются с помощью цепочечного API, добавляющего типизированные поля «ключ-значение» без reflection. Благодаря этому в типичных сценариях из бенчмарков аллокаций не возникает.
- zerolog можно использовать бесплатно? Какая у него лицензия?
- zerolog распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- zerolog всё ещё поддерживается?
- Активно поддерживается. Последний коммит в zerolog — 14 окт. 2026 г..
- Для чего можно использовать zerolog?
- Логирование высоконагруженных сервисов на Go, где важны накладные расходы на аллокации Формирование структурированных JSON-логов для передачи в системы агрегации логов Добавление полей, связанных с запросом, в логи HTTP-серверов Подключение JSON-бэкенда к существующему коду на основе slog
- Как установить zerolog?
- Установите модуль: go get -u github.com/rs/zerolog/log Импортируйте глобальный логгер и запишите сообщение в журнал
- Где скачать zerolog?
- Исходный код и инструкции по установке — на GitHub: https://github.com/rs/zerolog
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Структурированный логгер для Go, совместимый по API с log и поддерживающий плагины форматирования и хуки; находится в режиме поддержки.
Универсальный логгер для TypeScript и JavaScript: удобный вывод в терминал, JSON с полями в начале, маскирование секретов и отсутствие runtime-зависимостей.
Библиотека логирования для JavaScript и TypeScript без зависимостей, работающая в Deno, Node.js, Bun, браузерах и edge-функциях.
Единый TypeScript API для логирования: направляет записи в Pino, Winston, облачные сервисы, файлы, StatsD и OpenTelemetry через единый fluent-интерфейс.
Библиотека логирования для Python, которая заменяет настройку стандартного logging единым логгером, ротацией файлов, цветным выводом и структурированными логами.