func()

in http/server/logging/logging.go [42:65]


func (l *loggingMiddleware) ServeHTTP(w http.ResponseWriter, r *http.Request) {
	customWriter := logging.NewResponseWriter(w)

	startTime := l.now()
	ctx := r.Context()

	l.LogRequestStart(ctx, r, "RequestStart")
	l.next.ServeHTTP(customWriter, r)
	endTime := l.now()

	latency := endTime.Sub(startTime)
	errorMsg := customWriter.Buf.String()

	data := RequestLogData{
		Code:     customWriter.StatusCode,
		Duration: latency,
		Error:    errorMsg,
	}
	// TODO (tomabraham): move RequestStart and RequestEnd to a different interceptor
	// ApiRequestLog should only get "finished call" logs
	l.LogRequestEnd(ctx, r, "RequestEnd", data)
	l.LogRequestEnd(ctx, r, "finished call", data)

}