From 3ac82c3d80aa618c3268703a419e1309dc09a19f Mon Sep 17 00:00:00 2001 From: Justin Menga Date: Sat, 13 May 2017 09:44:34 +1200 Subject: [PATCH] Append new line to multiline events Signed-off-by: Justin Menga Upstream-commit: 4374f16667708118c126cd71f733493b0070e807 Component: engine --- components/engine/daemon/logger/awslogs/cloudwatchlogs.go | 4 +++- .../engine/daemon/logger/awslogs/cloudwatchlogs_test.go | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/components/engine/daemon/logger/awslogs/cloudwatchlogs.go b/components/engine/daemon/logger/awslogs/cloudwatchlogs.go index a54ddc0b73..6de65f8ac8 100644 --- a/components/engine/daemon/logger/awslogs/cloudwatchlogs.go +++ b/components/engine/daemon/logger/awslogs/cloudwatchlogs.go @@ -410,7 +410,9 @@ func (l *logStream) collectBatch() { events = l.processEvent(events, eventBuffer, eventBufferTimestamp) eventBuffer = eventBuffer[:0] } - eventBuffer = append(eventBuffer, unprocessedLine...) + // Append new line + processedLine := append(unprocessedLine, "\n"...) + eventBuffer = append(eventBuffer, processedLine...) logger.PutMessage(msg) continue } diff --git a/components/engine/daemon/logger/awslogs/cloudwatchlogs_test.go b/components/engine/daemon/logger/awslogs/cloudwatchlogs_test.go index 463843bc3c..3812b0a76e 100644 --- a/components/engine/daemon/logger/awslogs/cloudwatchlogs_test.go +++ b/components/engine/daemon/logger/awslogs/cloudwatchlogs_test.go @@ -534,7 +534,7 @@ func TestCollectBatchMultilinePattern(t *testing.T) { argument := <-mockClient.putLogEventsArgument assert.NotNil(t, argument, "Expected non-nil PutLogEventsInput") assert.Equal(t, 1, len(argument.LogEvents), "Expected LogEvents to contain 1 elements, but contains %d", len(argument.LogEvents)) - assert.Equal(t, logline+logline, *argument.LogEvents[0].Message, "Expected message to be %s but was %s", logline+logline, *argument.LogEvents[0].Message) + assert.Equal(t, logline+"\n"+logline+"\n", *argument.LogEvents[0].Message, "Expected message to be %s but was %s", logline+logline, *argument.LogEvents[0].Message) stream.Close() @@ -542,7 +542,7 @@ func TestCollectBatchMultilinePattern(t *testing.T) { argument = <-mockClient.putLogEventsArgument assert.NotNil(t, argument, "Expected non-nil PutLogEventsInput") assert.Equal(t, 1, len(argument.LogEvents), "Expected LogEvents to contain 1 elements, but contains %d", len(argument.LogEvents)) - assert.Equal(t, "xxxx "+logline, *argument.LogEvents[0].Message, "Expected message to be %s but was %s", "xxxx "+logline, *argument.LogEvents[0].Message) + assert.Equal(t, "xxxx "+logline+"\n", *argument.LogEvents[0].Message, "Expected message to be %s but was %s", "xxxx "+logline, *argument.LogEvents[0].Message) } func BenchmarkCollectBatch(b *testing.B) { @@ -647,7 +647,7 @@ func TestCollectBatchMultilinePatternMaxEventAge(t *testing.T) { argument := <-mockClient.putLogEventsArgument assert.NotNil(t, argument, "Expected non-nil PutLogEventsInput") assert.Equal(t, 1, len(argument.LogEvents), "Expected LogEvents to contain 1 elements, but contains %d", len(argument.LogEvents)) - assert.Equal(t, logline+logline, *argument.LogEvents[0].Message, "Expected message to be %s but was %s", logline+logline, *argument.LogEvents[0].Message) + assert.Equal(t, logline+"\n"+logline+"\n", *argument.LogEvents[0].Message, "Expected message to be %s but was %s", logline+logline, *argument.LogEvents[0].Message) stream.Close() } @@ -695,7 +695,7 @@ func TestCollectBatchMultilinePatternNegativeEventAge(t *testing.T) { argument := <-mockClient.putLogEventsArgument assert.NotNil(t, argument, "Expected non-nil PutLogEventsInput") assert.Equal(t, 1, len(argument.LogEvents), "Expected LogEvents to contain 1 elements, but contains %d", len(argument.LogEvents)) - assert.Equal(t, logline+logline, *argument.LogEvents[0].Message, "Expected message to be %s but was %s", logline+logline, *argument.LogEvents[0].Message) + assert.Equal(t, logline+"\n"+logline+"\n", *argument.LogEvents[0].Message, "Expected message to be %s but was %s", logline+logline, *argument.LogEvents[0].Message) stream.Close() }