Golang Logrus日志库
在使用Golang的Logrus日志库时遇到了几个问题:1) 如何自定义日志输出格式?比如想在日志中添加固定的字段或者特定的时间格式;2) 多级别日志(如Debug、Info、Error)在实际项目中应该如何合理使用?3) Logrus与标准库log的性能对比如何?在高并发场景下是否会有性能瓶颈?4) 有没有推荐的日志切割方案?希望日志能按日期或大小自动分割。
2 回复
Logrus是Go语言流行的结构化日志库,支持分级日志、JSON格式和钩子扩展。使用简单,性能良好,适合项目日志管理。
更多关于Golang Logrus日志库的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
Logrus 是一个功能强大且灵活的 Go 语言结构化日志库,适用于记录应用程序日志。它支持日志级别、钩子(hooks)、自定义格式和字段等功能。以下是一个基本使用示例:
1. 安装 Logrus
使用以下命令安装 Logrus:
go get github.com/sirupsen/logrus
2. 基本用法
package main
import (
"github.com/sirupsen/logrus"
)
func main() {
// 设置日志级别(默认 InfoLevel)
logrus.SetLevel(logrus.DebugLevel)
// 设置日志格式为 JSON
logrus.SetFormatter(&logrus.JSONFormatter{})
// 记录不同级别的日志
logrus.Debug("这是一条调试日志")
logrus.Info("这是一条信息日志")
logrus.Warn("这是一条警告日志")
logrus.Error("这是一条错误日志")
// 添加字段记录结构化日志
logrus.WithFields(logrus.Fields{
"user": "Alice",
"id": 123,
}).Info("用户登录成功")
}
3. 主要特性
- 日志级别:支持 Debug、Info、Warn、Error、Fatal 和 Panic。
- 自定义格式:支持文本(TextFormatter)和 JSON(JSONFormatter)格式。
- 钩子(Hooks):可将日志发送到外部系统(如文件、数据库)。
- 字段:通过
WithFields添加结构化数据。
4. 自定义配置示例
func init() {
logrus.SetFormatter(&logrus.TextFormatter{
FullTimestamp: true,
})
logrus.SetLevel(logrus.InfoLevel)
}
Logrus 简单易用,适合中小型项目。对于更复杂需求,可结合文件钩子或第三方服务(如 Logstash)。

