mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
c91c266872
This reduce the stack size which is beneficial for exceptions performance. See: https://gist.github.com/byroot/cb3bcadcc3701c2518d002fb8d3a4e7a However the cop is unsafe because it might change the block arity, so it can run into some false positives.
35 lines
918 B
Ruby
35 lines
918 B
Ruby
# frozen_string_literal: true
|
|
|
|
require "active_support/tagged_logging"
|
|
require "active_support/logger"
|
|
|
|
module ActiveJob
|
|
module Logging # :nodoc:
|
|
extend ActiveSupport::Concern
|
|
|
|
included do
|
|
cattr_accessor :logger, default: ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new(STDOUT))
|
|
class_attribute :log_arguments, instance_accessor: false, default: true
|
|
|
|
around_enqueue(prepend: true) { |_, block| tag_logger(&block) }
|
|
end
|
|
|
|
def perform_now
|
|
tag_logger(self.class.name, self.job_id) { super }
|
|
end
|
|
|
|
private
|
|
def tag_logger(*tags, &block)
|
|
if logger.respond_to?(:tagged)
|
|
tags.unshift "ActiveJob" unless logger_tagged_by_active_job?
|
|
logger.tagged(*tags, &block)
|
|
else
|
|
yield
|
|
end
|
|
end
|
|
|
|
def logger_tagged_by_active_job?
|
|
logger.formatter.current_tags.include?("ActiveJob")
|
|
end
|
|
end
|
|
end
|