diff --git a/embed/config_logging.go b/embed/config_logging.go index cae94b987..4b5919c90 100644 --- a/embed/config_logging.go +++ b/embed/config_logging.go @@ -225,7 +225,11 @@ func (cfg *Config) setupLogging() error { } // use stderr as fallback - syncer := getZapWriteSyncer() + syncer, lerr := getJournalWriteSyncer() + if lerr != nil { + return lerr + } + lvl := zap.NewAtomicLevelAt(zap.InfoLevel) if cfg.Debug { lvl = zap.NewAtomicLevelAt(zap.DebugLevel) diff --git a/embed/config_logging_journald_unix.go b/embed/config_logging_journald_unix.go index c58ef9ca0..8e5e2369f 100644 --- a/embed/config_logging_journald_unix.go +++ b/embed/config_logging_journald_unix.go @@ -17,6 +17,7 @@ package embed import ( + "fmt" "os" "github.com/coreos/etcd/pkg/logutil" @@ -25,6 +26,10 @@ import ( ) // use stderr as fallback -func getZapWriteSyncer() zapcore.WriteSyncer { - return zapcore.AddSync(logutil.NewJournaldWriter(os.Stderr)) +func getJournalWriteSyncer() (zapcore.WriteSyncer, error) { + jw, err := logutil.NewJournaldWriter(os.Stderr) + if err != nil { + return nil, fmt.Errorf("can't find journald (%v)", err) + } + return zapcore.AddSync(jw), nil } diff --git a/embed/config_logging_journald_windows.go b/embed/config_logging_journald_windows.go index 4ee146d35..5b7625648 100644 --- a/embed/config_logging_journald_windows.go +++ b/embed/config_logging_journald_windows.go @@ -22,6 +22,6 @@ import ( "go.uber.org/zap/zapcore" ) -func getZapWriteSyncer() zapcore.WriteSyncer { - return zapcore.AddSync(os.Stderr) +func getJournalWriteSyncer() (zapcore.WriteSyncer, error) { + return zapcore.AddSync(os.Stderr), nil }