安装
1
| go get github.com/sirupsen/logrus
|
使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| package main
import ( "github.com/sirupsen/logrus" )
func main() { logrus.SetLevel(logrus.TraceLevel)
logrus.Trace("trace msg") logrus.Debug("debug msg") logrus.Info("info msg") logrus.Warn("warn msg") logrus.Error("error msg") logrus.Fatal("fatal msg") logrus.Panic("panic msg") }
|
logrus.SetLevel设置输出级别,默认的级别为InfoLevel
输出文件名
logrus.SetReportCaller(true)
添加字段
logrus.WithField和logrus.WithFields,接受logrus.Fields参数,这是一个map,map[string]interface{}
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| package main
import ( "github.com/sirupsen/logrus" )
func main() { logrus.WithFields(logrus.Fields{ "name": "dj", "age": 18, }).Info("info msg") }
|
重定向
logrus.SetOutput接受一个io.Writer参数作为日志的输出对象,使用io.MultiWriter可以实现多个输出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| package main
import ( "bytes" "io" "log" "os"
"github.com/sirupsen/logrus" )
func main() { writer1 := &bytes.Buffer{} writer2 := os.Stdout writer3, err := os.OpenFile("log.txt", os.O_WRONLY|os.O_CREATE, 0755) if err != nil { log.Fatalf("create file log.txt failed: %v", err) }
logrus.SetOutput(io.MultiWriter(writer1, writer2, writer3)) logrus.Info("info msg") }
|
设置输出格式
json
1
| logrus.SetFormatter(&logrus.JSONFormatter{})
|