class LogrageActivejob::LogSubscriber
Public Instance Methods
perform(event)
click to toggle source
# File lib/lograge_activejob/log_subscriber.rb, line 5 def perform(event) data = initial_data(event) data.merge!(custom_options(event)) formatted_message = Lograge.formatter.call(data) logger.send(Lograge.log_level, formatted_message) end
Private Instance Methods
custom_options(event)
click to toggle source
# File lib/lograge_activejob/log_subscriber.rb, line 35 def custom_options(event) LogrageActivejob.custom_options(event) || {} end
initial_data(event)
click to toggle source
# File lib/lograge_activejob/log_subscriber.rb, line 17 def initial_data(event) payload = event.payload job = payload[:job] ex = payload[:exception_object] { event_name: event.name, job_class: job.class.name, job_id: job.job_id, adapter_class: event.payload[:adapter].class.name.demodulize, queue_name: job.queue_name, args: job.arguments.any? ? ActiveJob::Arguments.serialize(job.arguments) : [], duration: event.duration.round(2), # ms error: ex&.message, backtrace: ex&.backtrace, }.compact end
logger()
click to toggle source
Calls superclass method
# File lib/lograge_activejob/log_subscriber.rb, line 13 def logger LogrageActivejob.logger.presence || Lograge.logger.presence || super end
scheduled_at(job)
click to toggle source
# File lib/lograge_activejob/log_subscriber.rb, line 39 def scheduled_at(job) Time.at(job.scheduled_at).utc if job.scheduled_at end