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:
Mihai Parparita 2022-09-23 10:19:13 -07:00 committed by Mihai Parparita
parent e1bdbfe710
commit c66e15772f
2 changed files with 5 additions and 5 deletions

View File

@ -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)
} }

View File

@ -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++ {