aboutsummaryrefslogtreecommitdiff
path: root/plugin/errors/setup.go
diff options
context:
space:
mode:
authorGravatar Ondřej Benkovský <ondrej.benkovsky@wandera.com> 2021-07-09 16:23:02 +0200
committerGravatar GitHub <noreply@github.com> 2021-07-09 14:23:02 +0000
commit70b51a73d3a0029394dbdbc9f52a4d3d8e89d6f5 (patch)
tree9bd9362cdda53be3d3e56b4a76a59b8331b5ef21 /plugin/errors/setup.go
parenta6a7e738136cf09950dcdf880fe12ea9e14e3afc (diff)
downloadcoredns-70b51a73d3a0029394dbdbc9f52a4d3d8e89d6f5.tar.gz
coredns-70b51a73d3a0029394dbdbc9f52a4d3d8e89d6f5.tar.zst
coredns-70b51a73d3a0029394dbdbc9f52a4d3d8e89d6f5.zip
add configurable log level to errors plugin (#4718)
Automatically submitted.
Diffstat (limited to 'plugin/errors/setup.go')
-rw-r--r--plugin/errors/setup.go27
1 files changed, 25 insertions, 2 deletions
diff --git a/plugin/errors/setup.go b/plugin/errors/setup.go
index ef279dadf..9fc5a3595 100644
--- a/plugin/errors/setup.go
+++ b/plugin/errors/setup.go
@@ -66,7 +66,7 @@ func parseBlock(c *caddy.Controller, h *errorHandler) error {
}
args := c.RemainingArgs()
- if len(args) != 2 {
+ if len(args) < 2 || len(args) > 3 {
return c.ArgErr()
}
p, err := time.ParseDuration(args[0])
@@ -77,7 +77,30 @@ func parseBlock(c *caddy.Controller, h *errorHandler) error {
if err != nil {
return c.Err(err.Error())
}
- h.patterns = append(h.patterns, &pattern{period: p, pattern: re})
+ lc, err := parseLogLevel(c, args)
+ if err != nil {
+ return err
+ }
+ h.patterns = append(h.patterns, &pattern{period: p, pattern: re, logCallback: lc})
return nil
}
+
+func parseLogLevel(c *caddy.Controller, args []string) (func(format string, v ...interface{}), error) {
+ if len(args) != 3 {
+ return log.Errorf, nil
+ }
+
+ switch args[2] {
+ case "warn":
+ return log.Warningf, nil
+ case "error":
+ return log.Errorf, nil
+ case "info":
+ return log.Infof, nil
+ case "debug":
+ return log.Debugf, nil
+ default:
+ return nil, c.Err("unknown log level argument in consolidate")
+ }
+}