From 77598c2cc6f069a2acee6b667219051fecdec1c3 Mon Sep 17 00:00:00 2001 From: Matt Jaffee Date: Mon, 19 Nov 2018 16:15:33 -0600 Subject: [PATCH] dup log output onto stderr to catch panics in log file --- server/server.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/server/server.go b/server/server.go index de0d3eae0..41349b21d 100644 --- a/server/server.go +++ b/server/server.go @@ -176,14 +176,18 @@ func (m *Command) Wait() error { // setupLogger sets up the logger based on the configuration. func (m *Command) setupLogger() error { - var err error if m.Config.LogPath == "" { m.logOutput = m.Stderr } else { - m.logOutput, err = os.OpenFile(m.Config.LogPath, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0600) + f, err := os.OpenFile(m.Config.LogPath, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0600) if err != nil { return errors.Wrap(err, "opening file") } + m.logOutput = f + err = syscall.Dup2(int(f.Fd()), int(os.Stderr.Fd())) + if err != nil { + return errors.Wrap(err, "dup2ing stderr onto logfile") + } } if m.Config.Verbose {