Class: ActiveSupport::BufferedLogger

Inherits:
Object
  • Object
show all
Defined in:
lib/imprint/rails_logger.rb

Instance Method Summary collapse

Instance Method Details

#add(severity, message = nil, progname = nil, &block) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/imprint/rails_logger.rb', line 5

def add(severity, message = nil, progname = nil, &block)
  #rails 2 and 3.0
  if @level && self.respond_to?(:buffer)
    return if !@level.nil? && (@level > severity)
    message = (message || (block && block.call) || progname).to_s
    # If a newline is necessary then create a new message ending with a newline.
    # Ensures that the original message is not mutated.
    message = "#{message}\n" unless message[-1] == "\n"
    if defined?(Imprint::Tracer)
      Imprint::Tracer.insert_trace_id_in_message(message, ActiveSupport::BufferedLogger::Severity.constants[severity])
    end
    buffer << message
    auto_flush
    message
  else
    # rails 3.2.x
    return if !level.nil? && (level > severity)
    message = (message || (block && block.call) || progname).to_s
    # If a newline is necessary then create a new message ending with a newline.
    # Ensures that the original message is not mutated.
    message = "#{message}\n" unless message[-1] == "\n"
    if defined?(Imprint::Tracer)
      Imprint::Tracer.insert_trace_id_in_message(message, ActiveSupport::BufferedLogger::Severity.constants[severity])
    end
    @log.add(severity, message, progname, &block)
  end
end