diff --git a/config/setup/errors.go b/config/setup/errors.go index a261560d..a75b621a 100644 --- a/config/setup/errors.go +++ b/config/setup/errors.go @@ -2,11 +2,13 @@ package setup import ( "fmt" + "io" "log" "os" "path" "strconv" + "github.com/hashicorp/go-syslog" "github.com/mholt/caddy/middleware" "github.com/mholt/caddy/middleware/errors" ) @@ -21,12 +23,17 @@ func Errors(c *Controller) (middleware.Middleware, error) { // Open the log file for writing when the server starts c.Startup = append(c.Startup, func() error { var err error - var file *os.File + var file io.Writer if handler.LogFile == "stdout" { file = os.Stdout } else if handler.LogFile == "stderr" { file = os.Stderr + } else if handler.LogFile == "syslog" { + file, err = gsyslog.NewLogger(gsyslog.LOG_ERR, "SYSLOG", "caddy") + if err != nil { + return err + } } else if handler.LogFile != "" { file, err = os.OpenFile(handler.LogFile, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0644) if err != nil { diff --git a/config/setup/log.go b/config/setup/log.go index 694f3625..c63d1d16 100644 --- a/config/setup/log.go +++ b/config/setup/log.go @@ -1,9 +1,11 @@ package setup import ( + "io" "log" "os" + "github.com/hashicorp/go-syslog" "github.com/mholt/caddy/middleware" caddylog "github.com/mholt/caddy/middleware/log" "github.com/mholt/caddy/server" @@ -20,12 +22,17 @@ func Log(c *Controller) (middleware.Middleware, error) { c.Startup = append(c.Startup, func() error { for i := 0; i < len(rules); i++ { var err error - var file *os.File + var file io.Writer if rules[i].OutputFile == "stdout" { file = os.Stdout } else if rules[i].OutputFile == "stderr" { file = os.Stderr + } else if rules[i].OutputFile == "syslog" { + file, err = gsyslog.NewLogger(gsyslog.LOG_NOTICE, "SYSLOG", "caddy") + if err != nil { + return err + } } else { file, err = os.OpenFile(rules[i].OutputFile, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0644) if err != nil {