diff --git a/daemon/logger/logger.go b/daemon/logger/logger.go index 1ce7ed595d..d091997358 100644 --- a/daemon/logger/logger.go +++ b/daemon/logger/logger.go @@ -49,7 +49,7 @@ func CopyMessage(msg *Message) *Message { m.Timestamp = msg.Timestamp m.Partial = msg.Partial m.Attrs = make(LogAttributes) - for k, v := range m.Attrs { + for k, v := range msg.Attrs { m.Attrs[k] = v } return m diff --git a/daemon/logger/logger_test.go b/daemon/logger/logger_test.go new file mode 100644 index 0000000000..16e1514d2d --- /dev/null +++ b/daemon/logger/logger_test.go @@ -0,0 +1,26 @@ +package logger + +import ( + "reflect" + "testing" + "time" +) + +func TestCopyMessage(t *testing.T) { + msg := &Message{ + Line: []byte("test line."), + Source: "stdout", + Timestamp: time.Now(), + Attrs: LogAttributes{ + "key1": "val1", + "key2": "val2", + "key3": "val3", + }, + Partial: true, + } + + m := CopyMessage(msg) + if !reflect.DeepEqual(m, msg) { + t.Fatalf("CopyMessage failed to copy message") + } +}