JSON-логгер для Go с нулевым числом аллокаций, цепочечным API, уровнями и семплированием логов, а также опциональным выводом в CBOR.
sirupsen/logrus
Структурированный логгер для Go, совместимый по API с log и поддерживающий плагины форматирования и хуки; находится в режиме поддержки.
- Звёзды
- 25,764
- Форки
- 2,297
- Открытые issues
- 59
- Последний коммит
- 22 дня назад
Что это?
Logrus — структурированный логгер для Go, совместимый по API со стандартным пакетом log, поэтому существующий импорт log можно заменить с минимальными изменениями. Он записывает сообщения с полями «ключ-значение» и уровнем логирования, а выводить их может в виде цветного текста для терминала, текста в стиле logfmt или JSON для систем агрегации логов, таких как Logstash и Splunk.
Логгер поддерживает семь уровней — от Trace до Panic, отдельные назначения вывода для каждого логгера через любой io.Writer и повторно используемые контексты полей, создаваемые с помощью WithFields. Хуки позволяют передавать записи в другие системы, например в трекеры ошибок или syslog, а пользовательские форматтеры можно добавить, реализовав метод Format. Также есть информация о вызывающем коде, тестовый хук для проверки записанных сообщений и обработчики выхода при фатальных ошибках.
Проект находится в режиме поддержки: сопровождающие сосредоточены на исправлениях безопасности, ошибок и производительности, а новые возможности ограничены улучшением совместимости, например с Go log/slog. В README в качестве альтернатив указаны Zerolog, Zap и Apex — проекты, созданные с учетом более современных практик структурированного логирования в Go.
Ключевые возможности
- 01Полная совместимость со стандартным API пакета log.
- 02Структурированные поля «ключ-значение» и семь уровней — от Trace до Panic.
- 03Цветной вывод для терминала, текст в стиле logfmt и форматирование в JSON.
- 04Хуки для передачи записей в такие сервисы, как syslog или трекеры ошибок.
- 05Пользовательские форматтеры через простой интерфейс Format.
- 06Тестовый хук для проверки записанных сообщений в модульных тестах.
Сценарии использования
- Добавление структурированных логов в формате JSON в Go-сервис для передачи в Logstash или Splunk.
- Миграция существующего проекта со стандартного пакета log без переписывания мест вызова.
- Передача записей уровня error во внешний трекер исключений с помощью хука.
- Проверка в модульных тестах того, что были записаны определенные сообщения.
Быстрый старт
- 1
Установите модуль Logrus
go get github.com/sirupsen/logrus - 2
Импортируйте его в код Go и запишите сообщение с полями
Что важно знать
- Logrus находится в режиме поддержки, поэтому добавление новых функций не планируется.
- В README указаны альтернативы, такие как Zerolog, Zap и Apex.
В подборках
Темы
Частые вопросы
- Что такое logrus?
- Структурированный логгер для Go, совместимый по API с log и поддерживающий плагины форматирования и хуки; находится в режиме поддержки. Logrus — структурированный логгер для Go, совместимый по API со стандартным пакетом log, поэтому существующий импорт log можно заменить с минимальными изменениями. Он записывает сообщения с полями «ключ-значение» и уровнем логирования, а выводить их может в виде цветного текста для терминала, текста в стиле logfmt или JSON для систем агрегации логов, таких как Logstash и Splunk.
- logrus можно использовать бесплатно? Какая у него лицензия?
- logrus распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- logrus всё ещё поддерживается?
- Активно поддерживается. Последний коммит в logrus — 2 окт. 2026 г..
- Для чего можно использовать logrus?
- Добавление структурированных логов в формате JSON в Go-сервис для передачи в Logstash или Splunk. Миграция существующего проекта со стандартного пакета log без переписывания мест вызова. Передача записей уровня error во внешний трекер исключений с помощью хука. Проверка в модульных тестах того, что были записаны определенные сообщения.
- Как установить logrus?
- Установите модуль Logrus: go get github.com/sirupsen/logrus Импортируйте его в код Go и запишите сообщение с полями
- Где скачать logrus?
- Исходный код и инструкции по установке — на GitHub: https://github.com/sirupsen/logrus
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Универсальный логгер для TypeScript и JavaScript: удобный вывод в терминал, JSON с полями в начале, маскирование секретов и отсутствие runtime-зависимостей.
Консольная программа для просмотра логов: преобразует JSON и logfmt в удобный для чтения формат, поддерживает фильтрацию, сортировку и слежение за обновлениями.
Быстрая библиотека логирования для Go со структурированными записями, уровнями логирования и двумя API: Logger без аллокаций и более гибким SugaredLogger.
Библиотека логирования для JavaScript и TypeScript без зависимостей, работающая в Deno, Node.js, Bun, браузерах и edge-функциях.
Единый TypeScript API для логирования: направляет записи в Pino, Winston, облачные сервисы, файлы, StatsD и OpenTelemetry через единый fluent-интерфейс.