更多文章: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

  1. 倡议全局对立格局,如果须要收集倡议设置为 json 格局,不便收集到 ES 等日志零碎
  2. 能够配合 file-rotatelogs 或者 shell 去宰割