New file |
| | |
| | | package log |
| | | |
| | | import ( |
| | | "io/ioutil" |
| | | "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 NewLogger() *logrus.Logger { |
| | | if Log != nil { |
| | | return Log |
| | | } |
| | | |
| | | infopath := "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 := "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 |
| | | } |