Browse code

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 authored on 2017/06/27 06:34:51
Showing 2 changed files
... ...
@@ -112,9 +112,10 @@ func (s *journald) Log(msg *logger.Message) error {
112 112
 	}
113 113
 
114 114
 	line := string(msg.Line)
115
+	source := msg.Source
115 116
 	logger.PutMessage(msg)
116 117
 
117
-	if msg.Source == "stderr" {
118
+	if source == "stderr" {
118 119
 		return journal.Send(line, journal.PriErr, vars)
119 120
 	}
120 121
 	return journal.Send(line, journal.PriInfo, vars)
... ...
@@ -133,8 +133,9 @@ func New(info logger.Info) (logger.Logger, error) {
133 133
 
134 134
 func (s *syslogger) Log(msg *logger.Message) error {
135 135
 	line := string(msg.Line)
136
+	source := msg.Source
136 137
 	logger.PutMessage(msg)
137
-	if msg.Source == "stderr" {
138
+	if source == "stderr" {
138 139
 		return s.writer.Err(line)
139 140
 	}
140 141
 	return s.writer.Info(line)