logrus 是结构化的,与 golang 标准库完全兼容的 golang 日志打印框架。支持 Filed 和 HOOK 机制,自带 text 和 json 两种日志输出格式
import (
"github.com/rifflock/lfshook"
"github.com/sirupsen/logrus"
)
var Log *logrus.Logger
func NewLogger() *logrus.Logger {
if Log != nil {
return Log
}
pathMap := lfshook.PathMap{
logrus.InfoLevel: "./info.log",
logrus.WarnLevel: "./warn.log",
logrus.ErrorLevel: "./error.log",
}
Log = logrus.New()
Log.Hooks.Add(lfshook.NewHook(pathMap, &logrus.JSONFormatter{}))
return Log
}
func init() {
Log = NewLogger()
//Log.SetFormatter(&logrus.JSONFormatter{}) //日志格式
//Log.SetOutput(os.Stdout)
Log.SetLevel(logrus.InfoLevel) //设置日志等级
}
func main() {
Log.Info("写测试info数据")
Log.Warn("写测试警告数据")
Log.Error("写测试错误数据")
}