配置和管理框架日志

logger

本示例演示如何配置 dubbo-go 框架日志组件,将框架运行态日志保存到指定的位置。可在此查看 完整示例源码地址

注意

这里配置的只是 dubbo-go 框架自身的日志组件行为,即框架内部使用的日志,不影响业务日志框架的使用!

1. 日志配置

如下所示,可以通过 log.WithZap()log.WithLevel("warn") 设置 dubbo 框架日志行为:

  1. ins, err := dubbo.NewInstance(
  2. dubbo.WithLogger(
  3. log.WithLevel("warn"),
  4. log.WithZap(),
  5. ),
  6. )

2. 应用共享日志组件

注意,这里配置的只是 dubbo-go 框架自身的日志组件行为(即框架内部使用的日志),不影响业务日志框架的使用!

通过以下方式,业务应用也可以选择复用这个日志组件:

  1. import app_logger "github.com/dubbogo/gost/log/logger"
  2. app_logger.Info("hello")

日志 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不可以在Init 阶段使用,否则可能会发生意料之外的问题。

2. 完全自定义日志

当前 dubbo-go 框架支持 zap、logrus 两个日志框架,如果您想让 dubbo 框架内核使用其他日志框架打印日志,推荐以标准扩展形式增加支持,具体可参考核心库中内置的 源码实现

3. 访问日志

可以通过以下方式配置开启访问日志:

  1. srv, err := server.NewServer(
  2. server.WithAccesslog("true"),
  3. // server.WithAccesslog("default"),
  4. // server.WithAccesslog("/your/path/to/store/the/log/logfile"),
  5. )

对于 truedefault 而言,访问日志会使用 Dubbo 中的 logger 组件打印出来。如果指定了具体的日志文件路径,则直接写入到该文件。

最后修改 September 13, 2024: Refactor website structure (#2860) (1a4b998f54b)