Class: ActiveJob::Logging::LogSubscriber::EventFormatter

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_semantic_logger/extensions/active_job/logging.rb

Instance Method Summary collapse

Constructor Details

#initialize(event:, log_duration: false) ⇒ EventFormatter

Returns a new instance of EventFormatter.



47
48
49
50
# File 'lib/rails_semantic_logger/extensions/active_job/logging.rb', line 47

def initialize(event:, log_duration: false)
  @event = event
  @log_duration = log_duration
end

Instance Method Details

#job_infoObject



52
53
54
# File 'lib/rails_semantic_logger/extensions/active_job/logging.rb', line 52

def job_info
  "#{job.class.name} (Job ID: #{job.job_id}) to #{queue_name}"
end

#payloadObject



56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/rails_semantic_logger/extensions/active_job/logging.rb', line 56

def payload
  {}.tap do |h|
    h[:event_name]      = event.name
    h[:adapter]         = adapter_name
    h[:queue]           = job.queue_name
    h[:job_class]       = job.class.name
    h[:job_id]          = job.job_id
    h[:provider_job_id] = job.try(:provider_job_id) # Not available in Rails 4.2
    h[:duration]        = event.duration.round(2) if log_duration?
    h[:arguments]       = formatted_args
  end
end

#queue_nameObject



69
70
71
# File 'lib/rails_semantic_logger/extensions/active_job/logging.rb', line 69

def queue_name
  adapter_name + "(#{job.queue_name})"
end

#scheduled_atObject



73
74
75
# File 'lib/rails_semantic_logger/extensions/active_job/logging.rb', line 73

def scheduled_at
  Time.at(event.payload[:job].scheduled_at).utc
end