参考:https://juejin.cn/post/6844904061393698823
普通日志设置
func InitLogger() {
level := GetLogLevel(viper.GetString("LOG_LEVEL"))
log.SetLevel(level)
formatter := &log.TextFormatter{
ForceColors: true,//设置颜色
FullTimestamp: true,
DisableQuote: true,
TimestampFormat: "2006-01-02 15:04:05",
}
log.SetFormatter(formatter)
log.Debug("debug log level")
log.Info("start")
}
函数名和文件名的输出
import (
log "github.com/sirupsen/logrus"
)
func loggerInit() {
//初始化日志
log.SetReportCaller(true) //需要设置这个为true
log.SetFormatter(&log.TextFormatter{
TimestampFormat: "2006-01-02 15:03:04",
ForceColors: true,
FullTimestamp: true,
DisableQuote: true,
CallerPrettyfier: func(frame *runtime.Frame) (function string, file string) {
//处理函数名
fs := strings.Split(frame.Function, ".")
fun := ""
if len(fs) > 0 {
fun = fs[len(fs)-1]
}
fileName := path.Base(frame.File)
return fmt.Sprintf("[\033[1;34m%s\033[0m]", fun), fmt.Sprintf("[%s:%d]", fileName, frame.Line)
},
})
}
第三方日志插件
先安装
$ go get github.com/antonfisher/nested-logrus-formatter
然后如下调用
package main
import (
nested "github.com/antonfisher/nested-logrus-formatter"
"github.com/sirupsen/logrus"
)
func main() {
logrus.SetFormatter(&nested.Formatter{
HideKeys: true,
TimestampFormat: "2006-01-02 15:04:05",
FieldsOrder: []string{"name", "age"},//可以配置字段的输出顺序
})
logrus.Info("info msg")
}