log.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package fslog
  2. import (
  3. "go.uber.org/zap"
  4. "go.uber.org/zap/zapcore"
  5. "io"
  6. "os"
  7. )
  8. var Log *Logger
  9. func init() {
  10. consoleCfg := zap.NewDevelopmentEncoderConfig()
  11. consoleCfg.EncodeTime = zapcore.TimeEncoderOfLayout("2006-01-02 15:04:05")
  12. jsonCfg := zap.NewProductionEncoderConfig()
  13. jsonCfg.EncodeTime = zapcore.TimeEncoderOfLayout("2006-01-02 15:04:05")
  14. Log = &Logger{
  15. lv: zap.NewAtomicLevelAt(zap.DebugLevel),
  16. loggerConfig: &loggerConfig{SkipCaller: 2},
  17. }
  18. Log.cores = append(Log.cores,
  19. zapcore.NewCore(zapcore.NewConsoleEncoder(consoleCfg), zapcore.AddSync(os.Stdout), Log.lv),
  20. )
  21. Log.flushLogger()
  22. }
  23. // With 见 Logger.With
  24. func With(k string, v any) *Logger {
  25. return Log.With(k, v)
  26. }
  27. // Info 见 Logger.Info
  28. func Info(msg string, vs ...any) *Logger {
  29. Log.Info(msg, vs...)
  30. return Log
  31. }
  32. // Debug 见 Logger.Debug
  33. func Debug(msg string, vs ...any) *Logger {
  34. Log.Debug(msg, vs...)
  35. return Log
  36. }
  37. // Warn 见 Logger.Warn
  38. func Warn(msg string, vs ...any) *Logger {
  39. Log.Warn(msg, vs...)
  40. return Log
  41. }
  42. // Error 见 Logger.Error
  43. func Error(vs ...any) *Logger {
  44. Log.Error(vs...)
  45. return Log
  46. }
  47. // Lv 见 Logger.Lv
  48. func Lv() Level {
  49. return Log.Lv()
  50. }
  51. // SetLv 见 Logger.SetLv
  52. func SetLv(lv Level) *Logger {
  53. Log.SetLv(lv)
  54. return Log
  55. }
  56. // NewFileOutput 见 Logger.NewFileOutput
  57. func NewFileOutput(opts ...FileOutputOpt) *Logger {
  58. Log.NewFileOutput(opts...)
  59. return Log
  60. }
  61. // NewOutput 见 Logger.NewOutput
  62. func NewOutput(writer io.Writer) *Logger {
  63. Log.NewOutput(writer)
  64. return Log
  65. }
  66. // SetLogger 替换fslog包默认的log对象
  67. // Logger 支持了zapcore级别的底层配置,见 Logger
  68. func SetLogger(logger *Logger) *Logger {
  69. Log = logger
  70. return Log
  71. }
  72. // Flush 见 Logger.Flush
  73. func Flush() {
  74. Log.Flush()
  75. }