class Para::Logging::ActiveJobLogSubscriber

Public Instance Methods

failed(event) click to toggle source
# File lib/para/logging/active_job_log_subscriber.rb, line 4
def failed(event)
  fatal do
    job = event.payload[:job]
    buffer = []
    buffer << "#{ job.class.name } (Job ID: #{ job.job_id }) failed" + args_info(job)
    buffer << ''
    buffer << [event.payload[:exception].class, event.payload[:exception].message].join(' - ')
    buffer << ''
    buffer << '-------------------'
    buffer << ''
    buffer += event.payload[:exception].backtrace
    buffer << ''
    buffer.compact.join("\n")
  end
end

Private Instance Methods

args_info(job) click to toggle source
# File lib/para/logging/active_job_log_subscriber.rb, line 22
def args_info(job)
  if job.arguments.any?
    ' with arguments: ' +
      job.arguments.map { |arg| format(arg).inspect }.join(', ')
  else
    ''
  end
end
format(arg) click to toggle source
# File lib/para/logging/active_job_log_subscriber.rb, line 31
def format(arg)
  case arg
  when Hash
    arg.transform_values { |value| format(value) }
  when Array
    arg.map { |value| format(value) }
  when GlobalID::Identification
    arg.to_global_id rescue arg
  else
    arg
  end
end
logger() click to toggle source
# File lib/para/logging/active_job_log_subscriber.rb, line 44
def logger
  ActiveJob::Base.logger
end