JSON-логгер для Go с нулевым числом аллокаций, цепочечным API, уровнями и семплированием логов, а также опциональным выводом в CBOR.
uber-go/zap
Быстрая библиотека логирования для Go со структурированными записями, уровнями логирования и двумя API: Logger без аллокаций и более гибким SugaredLogger.
- Звёзды
- 24,678
- Форки
- 1,575
- Открытые issues
- 201
- Последний коммит
- в прошлом месяце
Что это?
Zap — библиотека логирования для Go, которая записывает структурированные сообщения с типизированными полями «ключ-значение» и поддерживает уровни логирования. Она рассчитана на приложения, где логирование происходит в критичных по производительности участках кода: сериализация через reflection и форматирование строк в таких местах заметно увеличивают нагрузку на CPU и число аллокаций.
В Zap есть два API. Logger использует строго типизированные значения Field и при большинстве вызовов не выделяет память, а SugaredLogger принимает пары «ключ-значение» с произвольными типами и поддерживает форматирование в стиле printf, несколько уступая в производительности. В основе обоих API — JSON-кодировщик без reflection. Собственный набор бенчмарков проекта сравнивает его с такими пакетами, как zerolog, slog, logrus и аналогичными библиотеками.
Документация библиотеки доступна на pkg.go.dev, а её API отмечен как стабильный: в серии 1.x несовместимых изменений не планируется. Для работы требуются две последние минорные версии Go.
Ключевые возможности
- 01Структурированное логирование со строго типизированными значениями Field.
- 02SugaredLogger с API для пар «ключ-значение» произвольных типов и форматирования в стиле printf.
- 03JSON-кодировщик без reflection и аллокаций.
- 04Логирование с уровнями и готовыми настройками для production и development.
Сценарии использования
- Логирование в чувствительных к задержкам сервисах на Go, где важны накладные расходы на аллокации.
- Запись JSON-логов, которые могут разбирать системы агрегации логов.
- Добавление структурированных контекстных полей к запросам в backend-сервисах.
Быстрый старт
- 1
Установите библиотеку zap с помощью go get
go get -u go.uber.org/zap - 2
Создайте логгер для production и записывайте логи с помощью SugaredLogger
Что важно знать
- Поддерживаются только две последние минорные версии Go.
В подборках
Темы
Частые вопросы
- Что такое zap?
- Быстрая библиотека логирования для Go со структурированными записями, уровнями логирования и двумя API: Logger без аллокаций и более гибким SugaredLogger. Zap — библиотека логирования для Go, которая записывает структурированные сообщения с типизированными полями «ключ-значение» и поддерживает уровни логирования. Она рассчитана на приложения, где логирование происходит в критичных по производительности участках кода: сериализация через reflection и форматирование строк в таких местах заметно увеличивают нагрузку на CPU и число аллокаций.
- zap можно использовать бесплатно? Какая у него лицензия?
- zap распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- zap всё ещё поддерживается?
- Обновлялся за последние 6 месяцев. Последний коммит в zap — 16 сент. 2026 г..
- Для чего можно использовать zap?
- Логирование в чувствительных к задержкам сервисах на Go, где важны накладные расходы на аллокации. Запись JSON-логов, которые могут разбирать системы агрегации логов. Добавление структурированных контекстных полей к запросам в backend-сервисах.
- Как установить zap?
- Установите библиотеку zap с помощью go get: go get -u go.uber.org/zap Создайте логгер для production и записывайте логи с помощью SugaredLogger
- Где скачать zap?
- Исходный код и инструкции по установке — на GitHub: https://github.com/uber-go/zap
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Универсальный логгер для TypeScript и JavaScript: удобный вывод в терминал, JSON с полями в начале, маскирование секретов и отсутствие runtime-зависимостей.
Структурированный логгер для Go, совместимый по API с log и поддерживающий плагины форматирования и хуки; находится в режиме поддержки.
Библиотека логирования для Python, которая заменяет настройку стандартного logging единым логгером, ротацией файлов, цветным выводом и структурированными логами.
Библиотека логирования для JavaScript и TypeScript без зависимостей, работающая в Deno, Node.js, Bun, браузерах и edge-функциях.
Единый TypeScript API для логирования: направляет записи в Pino, Winston, облачные сервисы, файлы, StatsD и OpenTelemetry через единый fluent-интерфейс.