Sha256: 51116fa458f63c007e5bf0c3e38d2ec2646a60f485362b62132ce82f218740ea
Contents?: true
Size: 1.52 KB
Versions: 2
Compression:
Stored size: 1.52 KB
Contents
module Loga module Sidekiq # The approach of using a custom job logger in sidekiq was introduced # in v5.0: https://github.com/mperham/sidekiq/pull/3235 # This job logger does not support logging for Sidekiq versions # that are before 5.0 class JobLogger include Loga::Utilities EVENT_TYPE = 'sidekiq'.freeze attr_reader :started_at, :data def initialize @started_at = Time.now @data = {} end def call(item, _queue) yield rescue Exception => ex # rubocop:disable Lint/RescueException data['exception'] = ex raise ensure assign_data(item) send_message end private 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 def short_message "#{data['class']} with jid: '#{data['jid']}' executed in #{data['duration']}ms" end def send_message event = Event.new(data: data, message: short_message, type: EVENT_TYPE) logger.public_send(compute_level, event) end def compute_level data.key?('exception') ? :warn : :info end def logger Loga.logger end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
loga-2.3.1 | lib/loga/sidekiq/job_logger.rb |
loga-2.3.0 | lib/loga/sidekiq/job_logger.rb |