class Sidekiq::Logging::Json::Logger
Public Instance Methods
call(severity, time, program_name, message)
click to toggle source
# File lib/sidekiq/logging/json.rb, line 8 def call(severity, time, program_name, message) { '@timestamp' => time.utc.iso8601, '@fields' => { :pid => ::Process.pid, :tid => "TID-#{Thread.current.object_id.to_s(36)}", :context => "#{context}", :program_name => program_name, :worker => "#{context}".split(" ")[0] }, '@type' => 'sidekiq', '@status' => nil, '@severity' => severity, '@run_time' => nil, }.merge(process_message(message)).to_json + "\n" end
Private Instance Methods
process_message(message)
click to toggle source
# File lib/sidekiq/logging/json.rb, line 27 def process_message(message) case message when Exception { '@status' => 'exception', '@message' => message.message } when Hash if message["retry"] { '@status' => 'retry', '@message' => "#{message['class']} failed, retrying with args #{message['args']}." } else { '@status' => 'dead', '@message' => "#{message['class']} failed with args #{message['args']}, not retrying." } end else result = message.split(" ") status = result[0].match(/^(start|done|fail):?$/) || [] { '@status' => status[1], # start or done '@run_time' => status[1] && result[1] && result[1].to_f, # run time in seconds '@message' => message } end end