class ActiveJob::Logging::LogSubscriber

:nodoc:

def args_info(job)

def args_info(job)
  if job.arguments.any?
    ' with arguments: ' +
      job.arguments.map { |arg| arg.try(:to_global_id).try(:to_s) || arg.inspect }.join(', ')
  else
    ''
  end
end

def enqueue(event)

:nodoc:
def enqueue(event)
  info do
    job = event.payload[:job]
    "Enqueued #{job.class.name} (Job ID: #{job.job_id}) to #{queue_name(event)}" + args_info(job)
  end
end

def enqueue_at(event)

def enqueue_at(event)
  info do
    job = event.payload[:job]
    "Enqueued #{job.class.name} (Job ID: #{job.job_id}) to #{queue_name(event)} at #{scheduled_at(event)}" + args_info(job)
  end
end

def logger

def logger
  ActiveJob::Base.logger
end

def perform(event)

def perform(event)
  info do
    job = event.payload[:job]
    "Performed #{job.class.name} from #{queue_name(event)} in #{event.duration.round(2)}ms"
  end
end

def perform_start(event)

def perform_start(event)
  info do
    job = event.payload[:job]
    "Performing #{job.class.name} from #{queue_name(event)}" + args_info(job)
  end
end

def queue_name(event)

def queue_name(event)
  event.payload[:adapter].name.demodulize.remove('Adapter') + "(#{event.payload[:job].queue_name})"
end

def scheduled_at(event)

def scheduled_at(event)
  Time.at(event.payload[:job].scheduled_at).utc
end