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.



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

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

Instance Attribute Details

#backtrace_cleanerObject

Returns the value of attribute backtrace_cleaner.



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

def backtrace_cleaner
  @backtrace_cleaner
end

Instance Method Details

#call(exception) ⇒ Object



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

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