package global import ( rotatelogs "github.com/lestrrat-go/file-rotatelogs" "github.com/rifflock/lfshook" log "github.com/sirupsen/logrus" "github.com/smbrave/goutil" "os" "time" ) func InitLog() { logLevel := GetConfig().Server.LogLevel 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 { panic(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(logLevel)) }