logger.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package initApp
  2. import (
  3. "DataShare/global"
  4. rotatelogs "github.com/lestrrat-go/file-rotatelogs"
  5. "github.com/rifflock/lfshook"
  6. "github.com/sirupsen/logrus"
  7. path "path"
  8. "time"
  9. )
  10. func LoggerInit() error{
  11. global.SystemLogger = logrus.New()
  12. global.SystemLogger.SetLevel(logrus.Level(global.SystemConfig.Log.Level))
  13. fileName := path.Join(global.SystemConfig.Log.Path, global.SystemConfig.Log.Name)
  14. // 设置 rotatelogs,实现文件分割
  15. logWriter, _ := rotatelogs.New(
  16. // 分割后的文件名称
  17. fileName+".%Y%m%d.log",
  18. // 生成软链,指向最新日志文件
  19. rotatelogs.WithLinkName(fileName),
  20. // 设置最大保存时间(7天)
  21. rotatelogs.WithMaxAge(7*24*time.Hour), //以hour为单位的整数
  22. // 设置日志切割时间间隔(1天)
  23. rotatelogs.WithRotationTime(1*time.Hour),
  24. )
  25. //hook机制的设置
  26. writerMap := lfshook.WriterMap{
  27. logrus.InfoLevel: logWriter,
  28. logrus.FatalLevel: logWriter,
  29. logrus.DebugLevel: logWriter,
  30. logrus.WarnLevel: logWriter,
  31. logrus.ErrorLevel: logWriter,
  32. logrus.PanicLevel: logWriter,
  33. }
  34. //给logrus添加hook
  35. global.SystemLogger.AddHook(lfshook.NewHook(writerMap,&logrus.JSONFormatter{
  36. TimestampFormat: "2006-01-02 15:04:05",
  37. }))
  38. return nil
  39. }