gin框架使用zap,在日志中加入trace_id
- 去除gin默认的日志组件
server := gin.New()
- 上下文中注入trace_id
server.Use(func(c *gin.Context) {
traceId := c.GetHeader("X-Request-ID")
if traceId == "" {
traceId = uuid.NewString()
}
c.Set("trace_id", traceId)
c.Next()
})
- 获取zap组件的
logger实例
logger, _ := zap.NewDevelopment()
- 以中间件方式把zap整合进gin中,并在日志中加入
trace_id
server.Use(ginzap.GinzapWithConfig(app.Logger, &ginzap.Config{
Context: func(c *gin.Context) []zap.Field {
traceId := c.GetString("trace_id")
return []zap.Field{
zap.String("trace_id", traceId),
}
},
}))

浙公网安备 33010602011771号