1
0
mirror of https://github.com/meineerde/rackstash.git synced 2026-01-31 17:27:13 +00:00

Do not prefix an empty messages with tags

If an event's message is completely empty (usually because there was
nothing logged at all), it isn't very useful to output this bare marked
up message at all. We thus ignore it and pass it along unchanged in the
Message encoder.

Note that we still add tags for messages consisting of other whitespace
like e.g. a newline added from a formatted empty message added to a
Logger.
This commit is contained in:
Holger Just 2017-10-19 22:58:51 +02:00
parent bded98fb6e
commit ca685bb13b
2 changed files with 15 additions and 2 deletions

View File

@ -45,8 +45,10 @@ module Rackstash
normalize_message(event)
message = event[FIELD_MESSAGE]
tags = @tagged_fields.map { |key| format_tag event[key] }.compact.join
message = message.gsub(/^/) { tags } unless tags.empty?
unless message.empty?
tags = @tagged_fields.map { |key| format_tag event[key] }.compact.join
message = message.gsub(/^/) { tags } unless tags.empty?
end
message
end

View File

@ -43,6 +43,17 @@ describe Rackstash::Encoders::Message do
event = { 'message' => ["line1\n", "line2\n"] }
expect(encoder.encode(event)).to eql "line1\nline2\n"
end
it 'does not prefix fields on an empty message' do
event = { 'message' => [], 'tags' => ['foo', 'bar'] }
expect(encoder.encode(event)).to eql ''
end
it 'prefixes fields with a single newline' do
event = { 'message' => ["\n"], 'tags' => ['foo', 'bar'] }
expect(encoder.encode(event)).to eql "[foo,bar] \n"
end
end
end
end