diff options
author | 2021-07-09 16:23:02 +0200 | |
---|---|---|
committer | 2021-07-09 14:23:02 +0000 | |
commit | 70b51a73d3a0029394dbdbc9f52a4d3d8e89d6f5 (patch) | |
tree | 9bd9362cdda53be3d3e56b4a76a59b8331b5ef21 /plugin/errors/setup.go | |
parent | a6a7e738136cf09950dcdf880fe12ea9e14e3afc (diff) | |
download | coredns-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.go | 27 |
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") + } +} |