From ed8c09655a43d9ec44142fb968e5abfbb69416cb Mon Sep 17 00:00:00 2001 From: liuxiaolong <liuxiaolong@aiotlink.com> Date: 星期三, 19 五月 2021 15:48:14 +0800 Subject: [PATCH] fix --- log/log.go | 75 +++++++++++++++++++++++++++++++++++++ 1 files changed, 75 insertions(+), 0 deletions(-) diff --git a/log/log.go b/log/log.go new file mode 100644 index 0000000..4a7e198 --- /dev/null +++ b/log/log.go @@ -0,0 +1,75 @@ +package log + +import ( + "io/ioutil" + "os" + "os/exec" + "path/filepath" + "time" + + rotatelogs "github.com/lestrrat-go/file-rotatelogs" + "github.com/rifflock/lfshook" + "github.com/sirupsen/logrus" +) + +var Log *logrus.Logger + +func init() { + Log = NewLogger() + Log.SetLevel(logrus.ErrorLevel) +} + +func SetLogLevel(level string){ + if level == "ErrorLevel" { + Log.SetLevel(logrus.ErrorLevel) + } else if level == "InfoLevel" { + Log.SetLevel(logrus.InfoLevel) + } else { + Log.SetLevel(logrus.InfoLevel) + } +} + +func NewLogger() *logrus.Logger { + if Log != nil { + return Log + } + rootPath := GetAppRootPath() + infopath := rootPath + "/logs/info.log" + infowriter, _ := rotatelogs.New( + infopath+".%Y%m%d%H%M", + rotatelogs.WithLinkName(infopath), + rotatelogs.WithMaxAge(30*24*time.Hour), + rotatelogs.WithRotationTime(24*time.Hour), + ) + + errorpath := rootPath + "/logs/error.log" + errorwriter, _ := rotatelogs.New( + errorpath+".%Y%m%d%H%M", + rotatelogs.WithLinkName(errorpath), + rotatelogs.WithMaxAge(30*24*time.Hour), + rotatelogs.WithRotationTime(24*time.Hour), + ) + + Log = logrus.New() + Log.SetOutput(ioutil.Discard) + Log.Hooks.Add(lfshook.NewHook( + lfshook.WriterMap{ + logrus.InfoLevel: infowriter, + logrus.ErrorLevel: errorwriter, + }, + &logrus.JSONFormatter{}, + )) + return Log +} + +func GetAppRootPath() string { + file,err:= exec.LookPath(os.Args[0]) + if err != nil { + return "" + } + p, err := filepath.Abs(file) + if err != nil { + return "" + } + return filepath.Dir(p) +} -- Gitblit v1.8.0