瀏覽代碼

Fix stderr logging for journald and syslog

logger.PutMessage, added in #28762 (v17.04.0-ce), clears msg.Source. So journald
and syslog were treating stderr messages as if they were stdout.

Signed-off-by: David Glasser <glasser@davidglasser.net>
David Glasser 8 年之前
父節點
當前提交
917050c572
共有 2 個文件被更改,包括 4 次插入2 次删除
  1. 2 1
      daemon/logger/journald/journald.go
  2. 2 1
      daemon/logger/syslog/syslog.go

+ 2 - 1
daemon/logger/journald/journald.go

@@ -112,9 +112,10 @@ func (s *journald) Log(msg *logger.Message) error {
 	}
 
 	line := string(msg.Line)
+	source := msg.Source
 	logger.PutMessage(msg)
 
-	if msg.Source == "stderr" {
+	if source == "stderr" {
 		return journal.Send(line, journal.PriErr, vars)
 	}
 	return journal.Send(line, journal.PriInfo, vars)

+ 2 - 1
daemon/logger/syslog/syslog.go

@@ -133,8 +133,9 @@ func New(info logger.Info) (logger.Logger, error) {
 
 func (s *syslogger) Log(msg *logger.Message) error {
 	line := string(msg.Line)
+	source := msg.Source
 	logger.PutMessage(msg)
-	if msg.Source == "stderr" {
+	if source == "stderr" {
 		return s.writer.Err(line)
 	}
 	return s.writer.Info(line)