Go日志框架logrus的基本用法

时间:2021-04-28 17:50:00

以package级别方式使用logrus

package main
import (
"os"
log "github.com/sirupsen/logrus"
)
func init() {
// 设置日志格式
log.SetFormatter(&log.JSONFormatter{})
// 设置输出
log.SetOutput(os.Stdout)
// 设置日志级别
log.SetLevel(log.WarnLevel)
}
func main() {
log.WithFields(log.Fields{
"animal": "walrus",
"size": 10,
}).Info("A group of walrus emerges from the ocean")
log.WithFields(log.Fields{
"omg": true,
"number": 122,
}).Warn("The group's number increased tremendously!")
log.WithFields(log.Fields{
"omg": true,
"number": 100,
}).Fatal("The ice breaks!")
// 设置日志默认的信息,所有使用contextLogger都会复用这些信息
contextLogger := log.WithFields(log.Fields{
"common": "this is a common field",
"other": "I also should be logged always",
})
contextLogger.Info("I'll be logged with common and other field")
contextLogger.Info("Me too")
}

以实例方式使用logrus

package main
import (
"os"
"github.com/sirupsen/logrus"
)
// 创建一个logrus示例
var log = logrus.New()
func main() {
// 设置输出,这和package的方式有所不同,它是以属性的方式赋值
log.Out = os.Stdout
log.WithFields(logrus.Fields{
"animal": "walrus",
"size": 10,
}).Info("A group of walrus emerges from the ocean")
}

日志格式

logrus内置的日志格式有两种:

  • logrus.TextFormatter:纯文本
  • logrus.JSONFormatter:JSON

第三方的日志格式:FluentdFormatterlogstashprefixedzalgo