Go 语言的零内存分配 JSON 日志库,采用链式 API,支持分级与采样日志。
sirupsen/logrus
Go 语言的结构化日志库,与标准库 log 接口兼容,支持可插拔的格式化器和钩子,目前处于维护模式。
- Star
- 25,764
- Fork
- 2,297
- 未关闭 Issue
- 59
- 最近提交
- 22天前
这是什么?
Logrus 是一个 Go 语言的结构化日志库,API 与标准库 log 包兼容,已有代码通常只需替换导入即可使用。它以键值字段和日志级别记录事件,终端下可输出带颜色的文本,也可输出 logfmt 风格的文本或 JSON,方便 Logstash、Splunk 等日志系统解析。
日志级别从 Trace 到 Panic 共七级,输出目标可通过任意 io.Writer 设置。通过 WithFields 可以创建可复用的字段上下文;钩子(Hook)可将日志转发到错误追踪服务或 syslog 等目的地,自定义格式化器只需实现 Format 方法。此外还提供调用位置记录、用于测试断言日志的 test 钩子,以及 Fatal 退出前的回调处理。
该项目目前处于维护模式,维护者主要关注安全、缺陷修复和性能优化,新功能仅限于与 Go 标准库 log/slog 等生态的互操作。项目说明中推荐了 Zerolog、Zap 和 Apex 等依据现代 Go 结构化日志实践设计的替代方案。
核心功能
- 01与标准库 log 的 API 兼容,替换导入即可迁移。
- 02支持结构化键值字段,共 Trace 到 Panic 七个级别。
- 03提供彩色终端输出、logfmt 风格文本和 JSON 格式化器。
- 04通过钩子将日志转发到 syslog、错误追踪等服务。
- 05可通过实现 Format 接口自定义格式化器。
- 06提供测试钩子,便于在单元测试中断言日志内容。
适用场景
- 为 Go 服务输出结构化 JSON 日志,供 Logstash 或 Splunk 采集。
- 在不修改调用代码的前提下,将项目从标准库 log 迁移过来。
- 通过钩子把错误级别日志发送到外部异常追踪系统。
- 在单元测试中验证程序是否输出了特定日志。
快速上手
- 1
安装 Logrus 模块
go get github.com/sirupsen/logrus - 2
在 Go 代码中导入并记录带字段的日志
使用前须知
- Logrus 处于维护模式,不计划新增功能。
- 其 README 推荐了 Zerolog、Zap 和 Apex 等替代方案。
收录于专题
标签
常见问题
- logrus 是什么?
- Go 语言的结构化日志库,与标准库 log 接口兼容,支持可插拔的格式化器和钩子,目前处于维护模式。 Logrus 是一个 Go 语言的结构化日志库,API 与标准库 log 包兼容,已有代码通常只需替换导入即可使用。它以键值字段和日志级别记录事件,终端下可输出带颜色的文本,也可输出 logfmt 风格的文本或 JSON,方便 Logstash、Splunk 等日志系统解析。
- logrus 可以免费使用吗?用的什么许可证?
- logrus 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- logrus 还在维护吗?
- 活跃维护中。logrus 最近一次提交是在 2026年10月2日。
- logrus 适合用来做什么?
- 为 Go 服务输出结构化 JSON 日志,供 Logstash 或 Splunk 采集。 在不修改调用代码的前提下,将项目从标准库 log 迁移过来。 通过钩子把错误级别日志发送到外部异常追踪系统。 在单元测试中验证程序是否输出了特定日志。
- logrus 怎么安装和运行?
- 安装 Logrus 模块: go get github.com/sirupsen/logrus 在 Go 代码中导入并记录带字段的日志
- 在哪里获取 logrus?
- 源代码和安装说明在 GitHub 上:https://github.com/sirupsen/logrus
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
面向 TypeScript 与 JavaScript 的通用日志库,支持美化终端输出、结构化 JSON、敏感信息脱敏,且无运行时依赖。
一款命令行日志查看工具,可将 JSON 和 logfmt 日志转换为易读格式,并支持过滤、排序与实时跟踪。
Go 语言的高性能结构化分级日志库,兼具零分配的 Logger 与更灵活的 SugaredLogger。
面向 JavaScript 与 TypeScript 的零依赖日志库,支持 Deno、Node.js、Bun、浏览器和边缘函数。
统一的 TypeScript 日志库,通过同一套链式 API 把日志路由到 Pino、云服务、文件、StatsD 和 OpenTelemetry 等后端。