Browse Source

reverseproxy: Make debug log safe if error occurs

master
Matthew Holt 5 years ago
parent
commit
9ee01dceac
No known key found for this signature in database GPG Key ID: 2A349DD577D586A5
  1. 12
      modules/caddyhttp/reverseproxy/reverseproxy.go

12
modules/caddyhttp/reverseproxy/reverseproxy.go

@ -461,20 +461,24 @@ func (h *Handler) reverseProxy(rw http.ResponseWriter, req *http.Request, di Dia
// point the request to this upstream
h.directRequest(req, di)
// do the round-trip
// do the round-trip; emit debug log with values we know are
// safe, or if there is no error, emit fuller log entry
start := time.Now()
res, err := h.Transport.RoundTrip(req)
duration := time.Since(start)
h.logger.Debug("upstream roundtrip",
logger := h.logger.With(
zap.String("upstream", di.Upstream.String()),
zap.Object("request", caddyhttp.LoggableHTTPRequest{Request: req}),
zap.Object("headers", caddyhttp.LoggableHTTPHeader(res.Header)),
zap.Duration("duration", duration),
zap.Int("status", res.StatusCode),
)
if err != nil {
logger.Debug("upstream roundtrip", zap.Error(err))
return err
}
logger.Debug("upstream roundtrip",
zap.Object("headers", caddyhttp.LoggableHTTPHeader(res.Header)),
zap.Int("status", res.StatusCode),
)
// update circuit breaker on current conditions
if di.Upstream.cb != nil {

Loading…
Cancel
Save