class Loga::Sidekiq5::JobLogger
The approach of using a custom job logger in sidekiq was introduced in v5.0: github.com/mperham/sidekiq/pull/3235
Constants
- EVENT_TYPE
Public Instance Methods
call(item, _queue) { || ... }
click to toggle source
# File lib/loga/sidekiq5/job_logger.rb, line 18 def call(item, _queue) reset_data yield rescue Exception => ex # rubocop:disable Lint/RescueException data['exception'] = ex raise ensure assign_data(item) send_message end
data()
click to toggle source
# File lib/loga/sidekiq5/job_logger.rb, line 14 def data @data ||= {} end
started_at()
click to toggle source
# File lib/loga/sidekiq5/job_logger.rb, line 10 def started_at @started_at ||= Time.now end
Private Instance Methods
assign_data(item)
click to toggle source
# File lib/loga/sidekiq5/job_logger.rb, line 37 def assign_data(item) data['created_at'] = item['created_at'] data['enqueued_at'] = item['enqueued_at'] data['jid'] = item['jid'] data['queue'] = item['queue'] data['retry'] = item['retry'] data['params'] = item['args'] data['class'] = item['class'] data['duration'] = duration_in_ms(started_at) end
compute_level()
click to toggle source
# File lib/loga/sidekiq5/job_logger.rb, line 58 def compute_level data.key?('exception') ? :warn : :info end
logger()
click to toggle source
# File lib/loga/sidekiq5/job_logger.rb, line 62 def logger Loga.logger end
reset_data()
click to toggle source
# File lib/loga/sidekiq5/job_logger.rb, line 32 def reset_data @data = {} @started_at = Time.now end
send_message()
click to toggle source
# File lib/loga/sidekiq5/job_logger.rb, line 52 def send_message event = Event.new(data: data, message: short_message, type: EVENT_TYPE) logger.public_send(compute_level, event) end
short_message()
click to toggle source
# File lib/loga/sidekiq5/job_logger.rb, line 48 def short_message "#{data['class']} with jid: '#{data['jid']}' executed in #{data['duration']}ms" end