更多文章:https://oscome.cn/
引言
作为 github 上 golang star 最多的库,logrus值得练习。
项目地址
项目地址: https://github.com/sirupsen/l... [star:21.4k]
使用场景
- 日志打印、格式化日志
安装
go get github.com/sirupsen/logrus
常用方法
- Info 打印 info 级别的日志
- SetFormatter 设置日志格式
- SetLevel 设置打印的级别,此级别以上显示
- SetReportCaller 设置是否将调用方法作为字段包含在打印的日志内。
例子
package main
import "github.com/sirupsen/logrus"
func main() {
log := logrus.New()
log.Info("------TextFormatter--------") // 默认格式
log.SetFormatter(&logrus.TextFormatter{
TimestampFormat: "2006-01-02 15:04:05", // 定义日期时间格式
FullTimestamp: true,
DisableColors: true,
})
log.Info("oscome info log")
log.Debug("oscome debug log")
log.WithFields(logrus.Fields{
"name": "test",
}).Infof("to do %v", "log")
log.Info("------JSONFormatter--------")
formatter := &logrus.JSONFormatter{
TimestampFormat: "2006-01-02 15:04:05", // 定义日期时间格式
DataKey: "test", // key
FieldMap: logrus.FieldMap{
logrus.FieldKeyTime: "timestamp",
logrus.FieldKeyLevel: "level",
logrus.FieldKeyMsg: "message",
logrus.FieldKeyFunc: "caller",
},
}
log.SetFormatter(formatter)
log.SetReportCaller(true) // 打印 log 产生的位置
log.SetLevel(logrus.InfoLevel) // debug
logrus.Info("oscome info log")
log.Debug("oscome debug log")
log.WithFields(logrus.Fields{
"name": "test",
}).Infof("to do %v", "log")
}
实例代码
https://github.com/oscome/god...
tips
- 建议全局统一格式,如果需要收集建议设置为 json 格式,方便收集到 ES 等日志系统
- 可以配合 file-rotatelogs 或者 shell 去分割
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。