class Huyegger::Formatter
Constants
- SEVERITY_STR
Attributes
original_formatter[R]
Public Class Methods
new(original_formatter)
click to toggle source
# File lib/huyegger/formatter.rb, line 18 def initialize(original_formatter) @original_formatter = original_formatter end
Public Instance Methods
call(severity, timestamp, progname, msg)
click to toggle source
This method is invoked when a log event occurs
# File lib/huyegger/formatter.rb, line 31 def call(severity, timestamp, progname, msg) msg = original_formatter.call(severity, timestamp, progname, msg) if original_formatter && String === msg json_message = {} add_severity!(json_message, severity) json_message.merge!(Huyegger.stringify_keys(__context__)) add_message!(json_message, msg) add_timestamp(json_message) "#{Huyegger.json_encoder.call(json_message)}\n" end
clear_context!()
click to toggle source
# File lib/huyegger/formatter.rb, line 22 def clear_context! __context__.clear end
context(context)
click to toggle source
# File lib/huyegger/formatter.rb, line 26 def context(context) __context__.merge!(context) unless context.nil? end
Private Instance Methods
__context__()
click to toggle source
# File lib/huyegger/formatter.rb, line 72 def __context__ # Use object_id to avoid conflicts with other instances Thread.current[:"__huyegger_context__#{object_id}"] ||= {} end
add_message!(json_message, msg)
click to toggle source
# File lib/huyegger/formatter.rb, line 56 def add_message!(json_message, msg) case msg when String json_message.merge!("message" => msg) when Hash json_message.merge!("message" => "Empty message") # default message because it is required json_message.merge!(Huyegger.stringify_keys(msg)) else json_message.merge!("message" => msg.inspect) end end
add_severity!(json_message, severity)
click to toggle source
# File lib/huyegger/formatter.rb, line 45 def add_severity!(json_message, severity) case severity when String json_message.merge!("level" => severity) when Integer json_message.merge!("level" => SEVERITY_STR.fetch(severity)) else json_message.merge!("level" => SEVERITY_STR.fetch(::Logger::UNKNOWN)) end end
add_timestamp(json_message)
click to toggle source
# File lib/huyegger/formatter.rb, line 68 def add_timestamp(json_message) json_message['timestamp'] ||= Time.now.xmlschema end