Module: RailsSemanticLogging::JobLogging::ActiveJobPatch

Extended by:
ActiveSupport::Concern
Defined in:
lib/rails_semantic_logging/job_logging/active_job_patch.rb

Overview

ActiveJob patch to provide named tags instead of array tags. Converts the default tag_logger(class, id) call into named tags (job_class, job_id, queue, provider_job_id, executions) for structured logging.

provider_job_id is the queue backend's native id (e.g. the solid_queue_jobs row id, or the Sidekiq jid) and lets a log line be correlated with the job in Mission Control / the solid_queue_* tables. It is only present once the job has been enqueued, so it is added conditionally. executions is the ActiveJob attempt counter, which makes retries visible in the logs.

Instance Method Summary collapse

Instance Method Details

#tag_logger(job_class = nil, job_id = nil) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'lib/rails_semantic_logging/job_logging/active_job_patch.rb', line 19

def tag_logger(job_class = nil, job_id = nil, &)
  if job_class && job_id
    tags = { job_class: job_class, job_id: job_id, queue: queue_name, executions: executions }
    tags[:provider_job_id] = provider_job_id if provider_job_id
    super(**tags, &)
  else
    super(&)
  end
end