glog支持标准库context.Context接口对象中上下文变量的自动读取打印。

键名配置

我们推荐使用配置文件来对上下文中的键名进行配置,例如:

  1. # 日志组件配置
  2. [logger]
  3. Path = "/var/log/my-app"
  4. Level = "all"
  5. Stdout = false
  6. CtxKeys = ["Trace-Id"]

其中CtxKeys用于配置需要从context.Context接口对象中读取并输出的键名。

日志输出

在输出日志的时候,需要通过Ctx链式操作方法指定输出的context.Context接口对象,例如:

  1. ctx := context.WithValue(context.Background(), "Trace-Id", "123456789")
  2. g.Log().Ctx(ctx).Error("runtime error")
  3. // May Output:
  4. // 2020-06-08 20:17:03.630 [ERRO] {Trace-Id: 123456789} runtime error
  5. // Stack:
  6. // ...

链路跟踪

goframe v1.15版本开始,日志组件增加了对OpenTelemetry规范的链路跟踪支持,该支持是标准化形式的,无需开发者做任何设置,具体请参考章节:链路跟踪

Content Menu