beego log中增加request id的一種方式

edwinxie發表於2016-10-22

有時候要在生產環境中追查問題,每個請求有一個唯一的request id對於定位問題十分有幫助。下面介紹一種非常簡單的方式。

  1. 繼承beego.Controller,重寫其Prepare方法,在其中生成request id並寫入到當前上下文的資料儲存結構體中:
    requestId := uuid.NewV4().String()
    this.Ctx.Input.SetData("requestId", requestId)
  2. 其他地方使用request Id
    rid := this.Ctx.Input.GetData("requestId").(string)
    beego.Info("profile request, request ID:", rid)

相關文章