log_release.go 751 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // +build release
  2. package utils
  3. import (
  4. "io"
  5. "log"
  6. "os"
  7. "path/filepath"
  8. "strings"
  9. rotatelogs "github.com/lestrrat-go/file-rotatelogs"
  10. )
  11. func Log(msg ...interface{}) {}
  12. func Logf(format string, msg ...interface{}) {}
  13. var rl *rotatelogs.RotateLogs
  14. func GetLogWriter() io.Writer {
  15. if rl != nil {
  16. return rl
  17. }
  18. logDir := LogDir()
  19. logFile := filepath.Join(logDir, strings.ToLower(EXEName())+"-%Y%m%d.log")
  20. _rl, err := rotatelogs.New(logFile, rotatelogs.WithMaxAge(-1), rotatelogs.WithRotationCount(3))
  21. if err == nil {
  22. rl = _rl
  23. return rl
  24. }
  25. log.Println("failed to create rotatelogs", err)
  26. log.Println("use stdout")
  27. return os.Stdout
  28. }
  29. func CloseLogWriter() {
  30. log.SetOutput(os.Stdout)
  31. if rl != nil {
  32. rl.Close()
  33. rl = nil
  34. }
  35. }