package main import ( "fmt" "io/ioutil" "os" "time" rotatelogs "github.com/lestrrat-go/file-rotatelogs" "github.com/rifflock/lfshook" "github.com/sirupsen/logrus" ) func init() { //日志初始化 // logrus.SetOutput(os.Stdout) logrus.SetOutput(ioutil.Discard) logrus.SetFormatter(&logrus.TextFormatter{}) logrus.SetLevel(logrus.DebugLevel) logrus.AddHook(newLfsHook(7)) } func newLfsHook(maxRemainCnt uint) logrus.Hook { //检查与创建日志文件夹 _, err := os.Stat("logs") if os.IsNotExist(err) { os.Mkdir("logs", 0755) } logName := fmt.Sprintf(`logs/%s`, APPNAME) writer, err := rotatelogs.New( logName+"%Y%m%d.log", rotatelogs.WithLinkName(logName), rotatelogs.WithRotationTime(24*time.Hour), rotatelogs.WithRotationCount(maxRemainCnt), ) if err != nil { panic("config local file system for logger error: " + err.Error()) } lfsHook := lfshook.NewHook(lfshook.WriterMap{ logrus.DebugLevel: writer, logrus.InfoLevel: writer, logrus.WarnLevel: writer, logrus.ErrorLevel: writer, logrus.FatalLevel: writer, logrus.PanicLevel: writer, }, &logrus.TextFormatter{}) return lfsHook }