From 68a2b57e28fbb39d5badb1167d14c4e89cd54c1e Mon Sep 17 00:00:00 2001 From: Holger Just Date: Thu, 9 Feb 2017 14:13:05 +0100 Subject: [PATCH] Add Logger#<< to ad a raw unformatted message to the buffer If the current Buffer is bufering, the message will just be added. Else, it will be flushed to the sink directly. --- lib/rackstash/logger.rb | 15 +++++++++++++++ spec/rackstash/logger_spec.rb | 6 ++++++ spec/rackstash/message_spec.rb | 7 ++++--- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/lib/rackstash/logger.rb b/lib/rackstash/logger.rb index 916c53c..c016743 100644 --- a/lib/rackstash/logger.rb +++ b/lib/rackstash/logger.rb @@ -56,6 +56,21 @@ module Rackstash @buffer_stack = Concurrent::ThreadLocalVar.new end + # Add a message to the current buffer without any further formatting. If + # the current {Buffer} is bufering, the message will just be added. Else, + # it will be flushed to the {#sink} directly. + # + # @param msg [Object] + # @return [String] the passed `msg` + def <<(msg) + buffer.add_message Message.new( + msg, + time: Time.now.utc.freeze, + ) + msg + end + + # Set the base log level as either one of the {SEVERITIES} or a # String/Symbol describing the level. When logging a message, it will only # be added if its log level is at or above the base level defined here diff --git a/spec/rackstash/logger_spec.rb b/spec/rackstash/logger_spec.rb index 240950c..71fba68 100644 --- a/spec/rackstash/logger_spec.rb +++ b/spec/rackstash/logger_spec.rb @@ -348,6 +348,12 @@ describe Rackstash::Logger do logger.unknown { 'Unknown' } expect(messages.last).to include message: 'Unknown', severity: 5 end + + it 'can add a raw message with <<' do + logger << :raw_value + expect(messages.last).to include message: :raw_value + expect(messages.last).not_to include :formatter, :severity + end end describe '#with_buffer' do diff --git a/spec/rackstash/message_spec.rb b/spec/rackstash/message_spec.rb index 2932247..d8b2a44 100644 --- a/spec/rackstash/message_spec.rb +++ b/spec/rackstash/message_spec.rb @@ -174,10 +174,11 @@ describe Rackstash::Message do end it 'accepts non-string objects' do - exception = StandardError.new('An error') - message = Rackstash::Message.new(exception) - + message = Rackstash::Message.new(StandardError.new('An error')) expect(message.to_s).to eql '#' + + message = Rackstash::Message.new(:symbol) + expect(message.to_s).to eql ':symbol' end it 'is aliased to to_str' do