1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
# frozen_string_literal: true
require "sidekiq"
module Sidekiq
module ExceptionHandler
class Logger
def call(ex, ctx)
Sidekiq.logger.warn(Sidekiq.dump_json(ctx)) unless ctx.empty?
Sidekiq.logger.warn("#{ex.class.name}: #{ex.message}")
Sidekiq.logger.warn(ex.backtrace.join("\n")) unless ex.backtrace.nil?
end
Sidekiq.error_handlers << Sidekiq::ExceptionHandler::Logger.new
end
def handle_exception(ex, ctx = {})
Sidekiq.error_handlers.each do |handler|
handler.call(ex, ctx)
rescue => ex
Sidekiq.logger.error "!!! ERROR HANDLER THREW AN ERROR !!!"
Sidekiq.logger.error ex
Sidekiq.logger.error ex.backtrace.join("\n") unless ex.backtrace.nil?
end
end
end
end
|