Sha256: edbf363d473a4fb27832f37baa72b557d818c6fd6dcd7f490888fcefb69dde22
Contents?: true
Size: 1.21 KB
Versions: 53
Compression:
Stored size: 1.21 KB
Contents
module Para module Logging class ActiveJobLogSubscriber < ActiveSupport::LogSubscriber 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 def args_info(job) if job.arguments.any? ' with arguments: ' + job.arguments.map { |arg| format(arg).inspect }.join(', ') else '' end end 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 def logger ActiveJob::Base.logger end end end end
Version data entries
53 entries across 53 versions & 1 rubygems