tsweb: consider 304s as successful for quiet logging
Static resource handlers will generate lots of 304s, which are effectively successful responses. Signed-off-by: Mihai Parparita <mihai@tailscale.com>
This commit is contained in:
parent
e1bdbfe710
commit
c66e15772f
|
@ -185,9 +185,9 @@ type ReturnHandler interface {
|
||||||
}
|
}
|
||||||
|
|
||||||
type HandlerOptions struct {
|
type HandlerOptions struct {
|
||||||
Quiet200s bool // if set, do not log successfully handled HTTP requests
|
QuietLoggingIfSuccessful bool // if set, do not log successfully handled HTTP requests (200 and 304 status codes)
|
||||||
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
|
// If non-nil, StatusCodeCounters maintains counters
|
||||||
// of status codes for handled responses.
|
// of status codes for handled responses.
|
||||||
|
@ -317,7 +317,7 @@ func (h retHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if msg.Code != 200 || !h.opts.Quiet200s {
|
if !h.opts.QuietLoggingIfSuccessful || (msg.Code != http.StatusOK && msg.Code != http.StatusNotModified) {
|
||||||
h.opts.Logf("%s", msg)
|
h.opts.Logf("%s", msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -303,7 +303,7 @@ func BenchmarkLogNot200(b *testing.B) {
|
||||||
// Implicit 200 OK.
|
// Implicit 200 OK.
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
h := StdHandler(rh, HandlerOptions{Quiet200s: true})
|
h := StdHandler(rh, HandlerOptions{QuietLoggingIfSuccessful: true})
|
||||||
req := httptest.NewRequest("GET", "/", nil)
|
req := httptest.NewRequest("GET", "/", nil)
|
||||||
rw := new(httptest.ResponseRecorder)
|
rw := new(httptest.ResponseRecorder)
|
||||||
for i := 0; i < b.N; i++ {
|
for i := 0; i < b.N; i++ {
|
||||||
|
|
Loading…
Reference in New Issue