@ -161,6 +161,11 @@ type HandlerOptions struct {
Quiet200s bool // if set, do not log successfully handled HTTP requests
Quiet200s bool // if set, do not log successfully handled HTTP requests
Logf logger . Logf
Logf logger . Logf
Now func ( ) time . Time // if nil, defaults to time.Now
Now func ( ) time . Time // if nil, defaults to time.Now
// If non-nil, StatusCodeCounters maintains counters
// of status codes for handled responses.
// The keys are "1xx", "2xx", "3xx", "4xx", and "5xx".
StatusCodeCounters * expvar . Map
}
}
// StdHandler converts a ReturnHandler into a standard http.Handler.
// StdHandler converts a ReturnHandler into a standard http.Handler.
@ -278,6 +283,10 @@ func (h retHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if msg . Code != 200 || ! h . opts . Quiet200s {
if msg . Code != 200 || ! h . opts . Quiet200s {
h . opts . Logf ( "%s" , msg )
h . opts . Logf ( "%s" , msg )
}
}
if h . opts . StatusCodeCounters != nil {
key := fmt . Sprintf ( "%dxx" , msg . Code / 100 )
h . opts . StatusCodeCounters . Add ( key , 1 )
}
}
}
}