aboutsummaryrefslogtreecommitdiff
path: root/middleware/errors/setup.go
diff options
context:
space:
mode:
Diffstat (limited to 'middleware/errors/setup.go')
-rw-r--r--middleware/errors/setup.go80
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
}