require 'active_support/concern' module RocketJob module Plugins module Job module Logger extend ActiveSupport::Concern included do around_perform :rocket_job_around_logger end private # Add logging around the perform call # - metric allows duration to be forwarded to statsd, etc. # - log_exception logs entire exception if raised # - on_exception_level changes log level from info to error on exception # - silence noisy jobs by raising log level def rocket_job_around_logger(&block) logger.info('Start #perform') logger.measure_info( 'Completed #perform', metric: "RocketJob/#{self.class.name}/perform", log_exception: :full, on_exception_level: :error, silence: log_level, &block ) end end end end end