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

Version Path
para-0.12.5 lib/para/logging/active_job_log_subscriber.rb
para-0.12.4 lib/para/logging/active_job_log_subscriber.rb
para-0.12.3 lib/para/logging/active_job_log_subscriber.rb
para-0.12.2 lib/para/logging/active_job_log_subscriber.rb
para-0.12.1 lib/para/logging/active_job_log_subscriber.rb
para-0.12.0 lib/para/logging/active_job_log_subscriber.rb
para-0.11.4 lib/para/logging/active_job_log_subscriber.rb
para-0.11.3 lib/para/logging/active_job_log_subscriber.rb
para-0.11.2 lib/para/logging/active_job_log_subscriber.rb
para-0.11.1 lib/para/logging/active_job_log_subscriber.rb
para-0.11.0 lib/para/logging/active_job_log_subscriber.rb
para-0.10.0 lib/para/logging/active_job_log_subscriber.rb
para-0.9.4 lib/para/logging/active_job_log_subscriber.rb
para-0.9.3.3 lib/para/logging/active_job_log_subscriber.rb
para-0.9.3.2 lib/para/logging/active_job_log_subscriber.rb
para-0.9.3.1 lib/para/logging/active_job_log_subscriber.rb
para-0.9.2 lib/para/logging/active_job_log_subscriber.rb
para-0.9.0 lib/para/logging/active_job_log_subscriber.rb
para-0.8.15 lib/para/logging/active_job_log_subscriber.rb
para-0.8.14 lib/para/logging/active_job_log_subscriber.rb