Repolode
uber-go

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

    Установите библиотеку zap с помощью go get

    go get -u go.uber.org/zap
  2. 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 обновляется ежедневно.

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