package global import ( "enterprise/common/config" rotatelogs "github.com/lestrrat-go/file-rotatelogs" "github.com/rifflock/lfshook" log "github.com/sirupsen/logrus" "github.com/smbrave/goutil" "os" "time" ) func initLog() error { cfg := config.GetConfig() logfile := "log/server.log" writer, err := rotatelogs.New( logfile+".%Y%m%d", rotatelogs.WithLinkName(logfile), rotatelogs.WithMaxAge(time.Duration(86400*7)*time.Second), rotatelogs.WithRotationTime(time.Duration(86400)*time.Second), ) if err != nil { return err } pathMap := lfshook.WriterMap{ log.TraceLevel: writer, log.DebugLevel: writer, log.InfoLevel: writer, log.WarnLevel: writer, log.ErrorLevel: writer, log.FatalLevel: writer, log.PanicLevel: writer, } log.AddHook(lfshook.NewHook(pathMap, new(goutil.LogFile))) log.SetOutput(os.Stdout) log.SetReportCaller(true) log.SetFormatter(new(goutil.LogFile)) log.SetLevel(log.Level(cfg.Server.LogLevel)) return nil }