From 11dacf4264fb43026daa09abf4d555012ee2e86c Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Sun, 19 Jul 2020 17:26:11 +0200 Subject: [PATCH] remote syslog: one Write() call per \n-terminated line MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We don’t want newlines in individual remote syslog lines. --- supervise.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/supervise.go b/supervise.go index 951e6f9..e1e9df5 100644 --- a/supervise.go +++ b/supervise.go @@ -75,8 +75,11 @@ func (w *remoteSyslogWriter) Write(b []byte) (int, error) { w.lines.Write(b) w.syslogMu.Lock() defer w.syslogMu.Unlock() - if w.syslog != nil { - w.syslog.Write(b) + if w.syslog == nil { + return len(b), nil + } + for _, line := range strings.Split(strings.TrimSpace(string(b)), "\n") { + w.syslog.Write([]byte(line + "\n")) } return len(b), nil }