更多文章: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 mainimport "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 去宰割