Sha256: 2ce3797768621918c84847cf5970e337625d6d2db9ccfc4eadac55051c921721

Contents?: true

Size: 971 Bytes

Versions: 2

Compression:

Stored size: 971 Bytes

Contents

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

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rocketjob-3.3.4 lib/rocket_job/plugins/job/logger.rb
rocketjob-3.3.3 lib/rocket_job/plugins/job/logger.rb