log_config.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package c_log
  2. import (
  3. "cicv-data-closedloop/common/util"
  4. "fmt"
  5. "github.com/sirupsen/logrus"
  6. "os"
  7. "path/filepath"
  8. "runtime"
  9. "time"
  10. )
  11. var GlobalLogger *logrus.Logger
  12. /* todo 20241113
  13. 1. 日志名称去掉时间后端,改为,log.1,log.2,log.3
  14. 2. 控制日志文件大小,比如每写入10M就由log.n换成 log.n+1
  15. 3. 日志文件删除策略,n天之前的日志则删除
  16. */
  17. // 初始化日志配置
  18. func InitLog(logDir string, prefix string) {
  19. time.Sleep(time.Duration(1) * time.Second)
  20. // 创建、追加、读写,777,所有权限
  21. logPath := logDir + prefix + "-" + time.Now().Format("2006-01-02-15-04-05") + ".log"
  22. err := util.CreateParentDir(logPath)
  23. if err != nil {
  24. os.Exit(-1)
  25. }
  26. f, err := os.OpenFile(logPath, os.O_CREATE|os.O_APPEND|os.O_RDWR, os.ModePerm)
  27. if err != nil {
  28. os.Exit(-1)
  29. }
  30. GlobalLogger = logrus.New()
  31. GlobalLogger.SetOutput(f)
  32. GlobalLogger.SetReportCaller(true) // 开启行号显示
  33. GlobalLogger.SetFormatter(&logrus.JSONFormatter{
  34. CallerPrettyfier: func(frame *runtime.Frame) (string, string) {
  35. fileName := filepath.Base(frame.File)
  36. return "", fmt.Sprintf("%s:%d", fileName, frame.Line)
  37. },
  38. })
  39. GlobalLogger.Info("初始化GlobalLogger - 成功")
  40. }