log.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package logger
  2. import (
  3. "io"
  4. "os"
  5. "git.baozhida.cn/OAuth-core/debug/writer"
  6. "git.baozhida.cn/OAuth-core/logger"
  7. log "git.baozhida.cn/OAuth-core/logger"
  8. "git.baozhida.cn/OAuth-core/pkg"
  9. "git.baozhida.cn/OAuth-core/plugins/logger/zap"
  10. )
  11. // SetupLogger 日志 cap 单位为kb
  12. func SetupLogger(opts ...Option) logger.Logger {
  13. op := setDefault()
  14. for _, o := range opts {
  15. o(&op)
  16. }
  17. if !pkg.PathExist(op.path) {
  18. err := pkg.PathCreate(op.path)
  19. if err != nil {
  20. log.Fatalf("create dir error: %s", err.Error())
  21. }
  22. }
  23. var err error
  24. var output io.Writer
  25. switch op.stdout {
  26. case "file":
  27. output, err = writer.NewFileWriter(
  28. writer.WithPath(op.path),
  29. writer.WithCap(op.cap<<10),
  30. )
  31. if err != nil {
  32. log.Fatal("logger setup error: %s", err.Error())
  33. }
  34. default:
  35. output = os.Stdout
  36. }
  37. var level logger.Level
  38. level, err = logger.GetLevel(op.level)
  39. if err != nil {
  40. log.Fatalf("get logger level error, %s", err.Error())
  41. }
  42. switch op.driver {
  43. case "zap":
  44. log.DefaultLogger, err = zap.NewLogger(logger.WithLevel(level), logger.WithOutput(output), zap.WithCallerSkip(2))
  45. if err != nil {
  46. log.Fatalf("new zap logger error, %s", err.Error())
  47. }
  48. //case "logrus":
  49. // setLogger = logrus.NewLogger(logger.WithLevel(level), logger.WithOutput(output), logrus.ReportCaller())
  50. default:
  51. log.DefaultLogger = logger.NewLogger(logger.WithLevel(level), logger.WithOutput(output))
  52. }
  53. return log.DefaultLogger
  54. }