Commit 95dce5cd authored by Matthew Holt's avatar Matthew Holt

Latency now available with recorder and replacer

parent 51139a5f
package middleware
import "net/http"
import (
"net/http"
"time"
)
// responseRecorder is a type of ResponseWriter that captures
// the status code written to it and also the size of the body
......@@ -12,6 +15,7 @@ type responseRecorder struct {
http.ResponseWriter
status int
size int
start time.Time
}
// NewResponseRecorder makes and returns a new responseRecorder,
......@@ -24,6 +28,7 @@ func NewResponseRecorder(w http.ResponseWriter) *responseRecorder {
return &responseRecorder{
ResponseWriter: w,
status: http.StatusOK,
start: time.Now(),
}
}
......
......@@ -50,8 +50,9 @@ func NewReplacer(r *http.Request, rr *responseRecorder) replacer {
"{when}": func() string {
return time.Now().Format(timeFormat)
}(),
"{status}": strconv.Itoa(rr.status),
"{size}": strconv.Itoa(rr.size),
"{status}": strconv.Itoa(rr.status),
"{size}": strconv.Itoa(rr.size),
"{latency}": time.Since(rr.start).String(),
}
// Header placeholders
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment