Class: Lumberjack::Formatter::ExceptionFormatter

Inherits:
Object
  • Object
show all
Defined in:
lib/lumberjack/formatter/exception_formatter.rb

Overview

Format an exception including the backtrace. You can specify an object that responds to ‘call` as a backtrace cleaner. The exception backtrace will be passed to this object and the returned array is what will be logged. You can use this to clean out superfluous lines.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(backtrace_cleaner = nil) ⇒ ExceptionFormatter

Returns a new instance of ExceptionFormatter.

Parameters:

  • backtrace_cleaner (#call) (defaults to: nil)

    An object that responds to ‘call` and takes an array of strings (the backtrace) and returns an array of strings (the



14
15
16
# File 'lib/lumberjack/formatter/exception_formatter.rb', line 14

def initialize(backtrace_cleaner = nil)
  self.backtrace_cleaner = backtrace_cleaner
end

Instance Attribute Details

#backtrace_cleanerObject

Returns the value of attribute backtrace_cleaner.



10
11
12
# File 'lib/lumberjack/formatter/exception_formatter.rb', line 10

def backtrace_cleaner
  @backtrace_cleaner
end

Instance Method Details

#call(exception) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/lumberjack/formatter/exception_formatter.rb', line 18

def call(exception)
  message = +"#{exception.class.name}: #{exception.message}"
  trace = exception.backtrace
  if trace
    trace = clean_backtrace(trace)
    message << "#{Lumberjack::LINE_SEPARATOR}  #{trace.join("#{Lumberjack::LINE_SEPARATOR}  ")}"
  end
  message
end