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.



12
13
14
# File 'lib/lumberjack/formatter/exception_formatter.rb', line 12

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



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

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