module RocketJob::Batch::Logger

Private Instance Methods

rocket_job_batch_log_payload() click to toggle source
# File lib/rocket_job/batch/logger.rb, line 48
def rocket_job_batch_log_payload
  {
    from:  aasm.from_state,
    to:    aasm.to_state,
    event: aasm.current_event
  }
end
rocket_job_batch_log_state_change() click to toggle source
# File lib/rocket_job/batch/logger.rb, line 44
def rocket_job_batch_log_state_change
  logger.info(aasm.current_event.to_s.camelcase, rocket_job_batch_log_payload)
end
rocket_job_batch_slice_logger(&block) click to toggle source

Add logging around processing of each slice

- 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
# File lib/rocket_job/batch/logger.rb, line 32
def rocket_job_batch_slice_logger(&block)
  logger.measure_info(
    "Completed slice",
    metric:             "#{self.class.name}/slice",
    log_exception:      :full,
    on_exception_level: :error,
    silence:            log_level,
    payload:            {records: rocket_job_slice&.size},
    &block
  )
end