go微服务Go

Logrus的使用

2019-01-09  本文已影响0人  yongfutian

Logrus的使用

1、安装

go get github.com/sirupsen/logrus

2、Logrus特性

六种日志级别:
logrus.Debug("Useful debugging information.")
logrus.Info("Something noteworthy happened!")
logrus.Warn("You should probably take a look at this.")
logrus.Error("Something failed but I'm not quitting.")
logrus.Fatal("Bye.")   //log之后会调用os.Exit(1)
logrus.Panic("I'm bailing.")   //log之后会panic()

3、log参数配置,定义输出、格式或者日志级别等

func init() {
    // 设置日志格式为json格式 自带的只有两种样式logrus.JSONFormatter{}和logrus.TextFormatter{}
    log.SetFormatter(&log.JSONFormatter{})

    // 设置将日志输出到标准输出(默认的输出为stderr,标准错误)
    // 日志消息输出可以是任意的io.writer类型
    log.SetOutput(os.Stdout)

    // 设置日志级别为warn以上
    log.SetLevel(log.WarnLevel)
}

4、常规使用

package main

import (
  log "github.com/sirupsen/logrus"
)

func main() {
  log.WithFields(log.Fields{
    "animal": "walrus",
  }).Info("A walrus appears")
}

5、logrus实例

package main
import (
    "github.com/sirupsen/logrus"
    "os"
)

// logrus提供了New()函数来创建一个logrus的实例。
// 项目中,可以创建任意数量的logrus实例。
var log = logrus.New()

func main() {
    // 为当前logrus实例设置消息的输出,同样地,
    // 可以设置logrus实例的输出到任意io.writer
    log.Out = os.Stdout

    // 为当前logrus实例设置消息输出格式为json格式。
    // 同样地,也可以单独为某个logrus实例设置日志级别和hook,这里不详细叙述。
    log.Formatter = &logrus.JSONFormatter{}

    log.WithFields(logrus.Fields{
    "animal": "walrus",
    "size":   10,
    }).Info("A group of walrus emerges from the ocean")
}

6、Fields

entry := logrus.WithFields(log.Fields{"request_id": request_id, "user_ip": user_ip})
entry.Info("something happened on that request") 
entry.Warn("something not great happened")

7、Entry
logrus.WithFields会自动返回一个 *Entry,Entry里面的有些变量会被自动加上

time:entry被创建时的时间戳
msg:在调用.Info()等方法时被添加
level
上一篇下一篇

猜你喜欢

热点阅读