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),
		}
	},
}))
posted @ 2026-02-24 15:51  代码小伙  阅读(3)  评论(0)    收藏  举报