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



20
21
22
# File 'lib/lumberjack/formatter/exception_formatter.rb', line 20

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

Instance Attribute Details

#backtrace_cleaner#call?



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

def backtrace_cleaner
  @backtrace_cleaner
end

Instance Method Details

#call(exception) ⇒ String

Format an exception with its message and backtrace.



28
29
30
31
32
33
34
35
36
# File 'lib/lumberjack/formatter/exception_formatter.rb', line 28

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