Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS
Mirrored from https://github.com/Slazee/caddy.git
Synced Nov 12, 08:15 UTC
rewrite: Only serialize request if necessary (#6541)
* Prevents serializing the caddy request if log level is not debug. * Extracts message to const.
Alexander Stecher committed
Aug 30, 2024 at 16:46 UTC
ffd28be90ab85206474739b1f479ef49a6f0d7c3
1 file changed
+7
-1
modules/caddyhttp/rewrite/rewrite.go
+7
-1
@@ -131,6 +131,12 @@ func (rewr *Rewrite) Provision(ctx caddy.Context) error {
131
132
func (rewr Rewrite) ServeHTTP(w http.ResponseWriter, r *http.Request, next caddyhttp.Handler) error {
133
repl := r.Context().Value(caddy.ReplacerCtxKey).(*caddy.Replacer)
134
+ const message = "rewrote request"
135
+
136
+ if rewr.logger.Check(zap.DebugLevel, message) == nil {
137
+ rewr.Rewrite(r, repl)
138
+ return next.ServeHTTP(w, r)
139
+ }
140
141
logger := rewr.logger.With(
142
zap.Object("request", caddyhttp.LoggableHTTPRequest{Request: r}),
@@ -139,7 +145,7 @@ func (rewr Rewrite) ServeHTTP(w http.ResponseWriter, r *http.Request, next caddy
145
changed := rewr.Rewrite(r, repl)
146
147
if changed {
142
- logger.Debug("rewrote request",
148
+ logger.Debug(message,
149
zap.String("method", r.Method),
150
zap.String("uri", r.RequestURI),
151
)