From ffd28be90ab85206474739b1f479ef49a6f0d7c3 Mon Sep 17 00:00:00 2001 From: Alexander Stecher <45872305+AlliBalliBaba@users.noreply.github.com> Date: Fri, 30 Aug 2024 16:46:51 +0200 Subject: [PATCH] rewrite: Only serialize request if necessary (#6541) * Prevents serializing the caddy request if log level is not debug. * Extracts message to const. --- modules/caddyhttp/rewrite/rewrite.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/caddyhttp/rewrite/rewrite.go b/modules/caddyhttp/rewrite/rewrite.go index 9a4995186..c45ad98a2 100644 --- a/modules/caddyhttp/rewrite/rewrite.go +++ b/modules/caddyhttp/rewrite/rewrite.go @@ -131,6 +131,12 @@ func (rewr *Rewrite) Provision(ctx caddy.Context) error { func (rewr Rewrite) ServeHTTP(w http.ResponseWriter, r *http.Request, next caddyhttp.Handler) error { repl := r.Context().Value(caddy.ReplacerCtxKey).(*caddy.Replacer) + const message = "rewrote request" + + if rewr.logger.Check(zap.DebugLevel, message) == nil { + rewr.Rewrite(r, repl) + return next.ServeHTTP(w, r) + } logger := rewr.logger.With( zap.Object("request", caddyhttp.LoggableHTTPRequest{Request: r}), @@ -139,7 +145,7 @@ func (rewr Rewrite) ServeHTTP(w http.ResponseWriter, r *http.Request, next caddy changed := rewr.Rewrite(r, repl) if changed { - logger.Debug("rewrote request", + logger.Debug(message, zap.String("method", r.Method), zap.String("uri", r.RequestURI), )