From 9ad0ebc956f4317111c12e2c5428acd18522f025 Mon Sep 17 00:00:00 2001 From: Francis Lavoie Date: Thu, 15 Sep 2022 12:05:36 -0400 Subject: caddyhttp: Add 'skip_log' var to omit request from logs (#4691) * caddyhttp: Implement `skip_log` handler * Refactor to use vars middleware Co-authored-by: Matt Holt --- caddyconfig/httpcaddyfile/builtins.go | 13 +++++++++++++ caddyconfig/httpcaddyfile/directives.go | 1 + 2 files changed, 14 insertions(+) (limited to 'caddyconfig') diff --git a/caddyconfig/httpcaddyfile/builtins.go b/caddyconfig/httpcaddyfile/builtins.go index cd23348..103b7a1 100644 --- a/caddyconfig/httpcaddyfile/builtins.go +++ b/caddyconfig/httpcaddyfile/builtins.go @@ -48,6 +48,7 @@ func init() { RegisterHandlerDirective("handle", parseHandle) RegisterDirective("handle_errors", parseHandleErrors) RegisterDirective("log", parseLog) + RegisterHandlerDirective("skip_log", parseSkipLog) } // parseBind parses the bind directive. Syntax: @@ -858,3 +859,15 @@ func parseLogHelper(h Helper, globalLogNames map[string]struct{}) ([]ConfigValue } return configValues, nil } + +// parseSkipLog parses the skip_log directive. Syntax: +// +// skip_log [] +func parseSkipLog(h Helper) (caddyhttp.MiddlewareHandler, error) { + for h.Next() { + if h.NextArg() { + return nil, h.ArgErr() + } + } + return caddyhttp.VarsMiddleware{"skip_log": true}, nil +} diff --git a/caddyconfig/httpcaddyfile/directives.go b/caddyconfig/httpcaddyfile/directives.go index e2113eb..5ab092d 100644 --- a/caddyconfig/httpcaddyfile/directives.go +++ b/caddyconfig/httpcaddyfile/directives.go @@ -42,6 +42,7 @@ var directiveOrder = []string{ "map", "vars", "root", + "skip_log", "header", "copy_response_headers", // only in reverse_proxy's handle_response -- cgit v1.2.3