Fix incorrect request start time (#10516)

Log request start time BEFORE starting processing the request
This commit is contained in:
Klaus Post 2020-09-18 09:30:52 -07:00 committed by GitHub
parent c851e022b7
commit 0b1c824618
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -121,11 +121,6 @@ func Trace(f http.HandlerFunc, logBody bool, w http.ResponseWriter, r *http.Requ
t.NodeName = host
}
rw := logger.NewResponseWriter(w)
rw.LogErrBody = true
rw.LogAllBody = logBody
f(rw, r)
rq := trace.RequestInfo{
Time: time.Now().UTC(),
Proto: r.Proto,
@ -134,8 +129,15 @@ func Trace(f http.HandlerFunc, logBody bool, w http.ResponseWriter, r *http.Requ
RawQuery: r.URL.RawQuery,
Client: handlers.GetSourceIP(r),
Headers: reqHeaders,
Body: reqBodyRecorder.Data(),
}
rw := logger.NewResponseWriter(w)
rw.LogErrBody = true
rw.LogAllBody = logBody
// Execute call.
f(rw, r)
rs := trace.ResponseInfo{
Time: time.Now().UTC(),
Headers: rw.Header().Clone(),
@ -143,6 +145,9 @@ func Trace(f http.HandlerFunc, logBody bool, w http.ResponseWriter, r *http.Requ
Body: rw.Body(),
}
// Transfer request body
rq.Body = reqBodyRecorder.Data()
if rs.StatusCode == 0 {
rs.StatusCode = http.StatusOK
}