class Applicaster::Logger::Formatter
Attributes
default_fields[RW]
Public Class Methods
new(options = {})
click to toggle source
# File lib/applicaster/logger/formatter.rb, line 15 def initialize(options = {}) @default_fields = options.with_indifferent_access @datetime_format = nil end
Public Instance Methods
call(severity, time, progname, message)
click to toggle source
# File lib/applicaster/logger/formatter.rb, line 20 def call(severity, time, progname, message) data = default_fields. deep_merge(message_to_data(message)). merge({ severity: severity, host: HOST }). deep_merge(Applicaster::Logger::ThreadContext.current) event = LogStash::Event.new(data) event.timestamp = time.utc.iso8601(3) event.tags = current_tags "#{event.to_json}\n" end
Protected Instance Methods
message_to_data(message)
click to toggle source
# File lib/applicaster/logger/formatter.rb, line 35 def message_to_data(message) case message when Hash message.with_indifferent_access when LogStash::Event message.to_hash.with_indifferent_access when /^\{/ JSON.parse(message).with_indifferent_access rescue { message: msg2str(message) } else { message: msg2str(message) }.with_indifferent_access end end