diff options
Diffstat (limited to 'middleware/errors/setup.go')
-rw-r--r-- | middleware/errors/setup.go | 80 |
1 files changed, 12 insertions, 68 deletions
diff --git a/middleware/errors/setup.go b/middleware/errors/setup.go index 787b89724..af9a7bbff 100644 --- a/middleware/errors/setup.go +++ b/middleware/errors/setup.go @@ -1,14 +1,13 @@ package errors import ( - "io" + "fmt" "log" "os" "github.com/coredns/coredns/core/dnsserver" "github.com/coredns/coredns/middleware" - "github.com/hashicorp/go-syslog" "github.com/mholt/caddy" ) @@ -25,34 +24,7 @@ func setup(c *caddy.Controller) error { return middleware.Error("errors", err) } - var writer io.Writer - - switch handler.LogFile { - case "visible": - handler.Debug = true - case "stdout": - writer = os.Stdout - case "stderr": - writer = os.Stderr - case "syslog": - writer, err = gsyslog.NewLogger(gsyslog.LOG_ERR, "LOCAL0", "coredns") - if err != nil { - return middleware.Error("errors", err) - } - default: - if handler.LogFile == "" { - writer = os.Stderr // default - break - } - - var file *os.File - file, err = os.OpenFile(handler.LogFile, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0644) - if err != nil { - return middleware.Error("errors", err) - } - writer = file - } - handler.Log = log.New(writer, "", 0) + handler.Log = log.New(os.Stdout, "", 0) dnsserver.GetConfig(c).AddMiddleware(func(next middleware.Handler) middleware.Handler { handler.Next = next @@ -65,47 +37,19 @@ func setup(c *caddy.Controller) error { func errorsParse(c *caddy.Controller) (errorHandler, error) { handler := errorHandler{} - optionalBlock := func() (bool, error) { - var hadBlock bool - - for c.NextBlock() { - hadBlock = true - - what := c.Val() - if !c.NextArg() { - return hadBlock, c.ArgErr() - } - where := c.Val() - - if what == "log" { - if where == "visible" { - handler.Debug = true - } else { - handler.LogFile = where - } - } - } - return hadBlock, nil - } - for c.Next() { - // Configuration may be in a block - hadBlock, err := optionalBlock() - if err != nil { - return handler, err - } - - // Otherwise, the only argument would be an error log file name or 'visible' - if !hadBlock { - if c.NextArg() { - if c.Val() == "visible" { - handler.Debug = true - } else { - handler.LogFile = c.Val() - } + args := c.RemainingArgs() + switch len(args) { + case 0: + handler.LogFile = "stdout" + case 1: + if args[0] != "stdout" { + return handler, fmt.Errorf("invalid log file: %s", args[0]) } + handler.LogFile = args[0] + default: + return handler, c.ArgErr() } } - return handler, nil } |