Parse external request id from request headers, and print it in access log (#22906)
Close: #22890. --- ### Configure in .ini file: ```ini [log] REQUEST_ID_HEADERS = X-Request-ID, X-Trace-Id ``` ### Params in Request Header ``` X-Trace-ID: trace-id-1q2w3e4r ```  ### Log output: 
This commit is contained in:
parent
cf29ee6dd2
commit
5155ec35c5
5 changed files with 74 additions and 1 deletions
|
@ -38,6 +38,7 @@ var Log struct {
|
|||
EnableAccessLog bool
|
||||
AccessLogTemplate string
|
||||
BufferLength int64
|
||||
RequestIDHeaders []string
|
||||
}
|
||||
|
||||
// GetLogDescriptions returns a race safe set of descriptions
|
||||
|
@ -153,6 +154,7 @@ func loadLogFrom(rootCfg ConfigProvider) {
|
|||
Log.AccessLogTemplate = sec.Key("ACCESS_LOG_TEMPLATE").MustString(
|
||||
`{{.Ctx.RemoteAddr}} - {{.Identity}} {{.Start.Format "[02/Jan/2006:15:04:05 -0700]" }} "{{.Ctx.Req.Method}} {{.Ctx.Req.URL.RequestURI}} {{.Ctx.Req.Proto}}" {{.ResponseWriter.Status}} {{.ResponseWriter.Size}} "{{.Ctx.Req.Referer}}\" \"{{.Ctx.Req.UserAgent}}"`,
|
||||
)
|
||||
Log.RequestIDHeaders = sec.Key("REQUEST_ID_HEADERS").Strings(",")
|
||||
// the `MustString` updates the default value, and `log.ACCESS` is used by `generateNamedLogger("access")` later
|
||||
_ = rootCfg.Section("log").Key("ACCESS").MustString("file")
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue