Repolode
rs

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. 1

    Установите модуль

    go get -u github.com/rs/zerolog/log
  2. 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 обновляется ежедневно.

Похожие проекты