日志

参考samples dubbo-go-samples/logger

1. 日志配置

dubbogo 3.0 默认采用 zap 日志库,在配置文件中不添加 logger 配置,日志将会打印到控制默认级别为debug。您也可在配置文件中配置日志级别、, 可参照如下方式来配置zap-config和lumberjack-config,从而定制化日志输出。

  1. dubbo:
  2. logger:
  3. zap-config:
  4. level: debug # 日志级别
  5. development: false
  6. disableCaller: false
  7. disableStacktrace: false
  8. encoding: "console"
  9. # zap encoder 配置
  10. encoderConfig:
  11. messageKey: "message"
  12. levelKey: "level"
  13. timeKey: "time"
  14. nameKey: "logger"
  15. callerKey: "caller"
  16. stacktraceKey: "stacktrace"
  17. lineEnding: ""
  18. levelEncoder: "capitalColor"
  19. timeEncoder: "iso8601"
  20. durationEncoder: "seconds"
  21. callerEncoder: "short"
  22. nameEncoder: ""
  23. outputPaths:
  24. - "stderr"
  25. errorOutputPaths:
  26. - "stderr"
  27. lumberjack-config:
  28. # 写日志的文件名称
  29. filename: "logs.log"
  30. # 每个日志文件长度的最大大小,单位是 MiB。默认 100MiB
  31. maxSize: 1
  32. # 日志保留的最大天数(只保留最近多少天的日志)
  33. maxAge: 3
  34. # 只保留最近多少个日志文件,用于控制程序总日志的大小
  35. maxBackups: 5
  36. # 是否使用本地时间,默认使用 UTC 时间
  37. localTime: true
  38. # 是否压缩日志文件,压缩方法 gzip
  39. compress: false

2. 日志API 和 自定义日志

日志Interface

  1. type Logger interface {
  2. Info(args ...interface{})
  3. Warn(args ...interface{})
  4. Error(args ...interface{})
  5. Debug(args ...interface{})
  6. Fatal(args ...interface{})
  7. Infof(fmt string, args ...interface{})
  8. Warnf(fmt string, args ...interface{})
  9. Errorf(fmt string, args ...interface{})
  10. Debugf(fmt string, args ...interface{})
  11. Fatalf(fmt string, args ...interface{})
  12. }

日志API

  1. import "dubbo.apache.org/dubbo-go/v3/common/logger"
  2. logger.SetLoggerLevel(warn) // 在 main 函数中设置日志级别
  3. logger.SetLogger(myLogger) // 在 main 函数中设置自定义logger
  • 日志API不可以在Init 阶段使用,否则可能会发生意料之外的问题。

下一章: 【Metrics 数据上报】

最后修改 December 16, 2022: Fix check (#1736) (97972c1)