Skip to content

Commit

Permalink
reverseproxy: Make debug log safe if error occurs
Browse files Browse the repository at this point in the history
  • Loading branch information
mholt committed May 18, 2020
1 parent 812278a commit 9ee01dc
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions modules/caddyhttp/reverseproxy/reverseproxy.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down

0 comments on commit 9ee01dc

Please sign in to comment.