123456789_123456789_123456789_123456789_123456789_

Module: ActiveJob::Logging

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Included In:
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Defined in: activejob/lib/active_job/logging.rb

Class Method Summary

::ActiveSupport::Concern - Extended

class_methods

Define class methods from given block.

included

Evaluate given block in context of base class, so that you can write class macros here.

prepended

Evaluate given block in context of base class, so that you can write class macros here.

append_features, prepend_features

Instance Attribute Summary

Instance Method Summary

DSL Calls

included

[ GitHub ]


10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'activejob/lib/active_job/logging.rb', line 10

included do
  ##
  # Accepts a logger conforming to the interface of Log4r or the default
  # Ruby Logger class. You can retrieve this logger by calling logger on
  # either an Active Job job class or an Active Job job instance.
  cattr_accessor :logger, default: ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new(STDOUT))

  ##
  # Configures whether a job's arguments should be logged. This can be
  # useful when a job's arguments may be sensitive and so should not be
  # logged.
  #
  # The value defaults to true, but this can be configured with
  # config.active_job.log_arguments. Additionally, individual jobs can
  # also configure a value, which will apply to themselves and any
  # subclasses.
  class_attribute :log_arguments, instance_accessor: false, default: true

  around_enqueue(prepend: true) { |_, block| tag_logger(&block) }
end

Instance Attribute Details

#logger_tagged_by_active_job?Boolean (readonly, private)

[ GitHub ]

  
# File 'activejob/lib/active_job/logging.rb', line 45

def logger_tagged_by_active_job?
  logger.formatter.current_tags.include?("ActiveJob")
end

Instance Method Details

#perform_now

This method is for internal use only.
[ GitHub ]

  
# File 'activejob/lib/active_job/logging.rb', line 31

def perform_now # :nodoc:
  tag_logger(self.class.name, self.job_id) { super }
end

#tag_logger(*tags, &block) (private)

[ GitHub ]

  
# File 'activejob/lib/active_job/logging.rb', line 36

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