enterprise/common/global/log.go

44 lines
978 B
Go

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
}