Class: ExtraLogger

Inherits:
Logger show all
Defined in:
lib/story_teller/logging.rb

Overview

Add extra severity to the standard Logger class. Also add support for including backtraces implicitly.

Constant Summary collapse

SEV_LABEL_EXTRA =
(Logger::SEV_LABEL + %w(TRACE)).freeze

Instance Method Summary collapse

Instance Method Details

#error(error_or_message = nil, error = nil, &block) ⇒ Object



172
173
174
175
176
177
178
179
# File 'lib/story_teller/logging.rb', line 172

def error(error_or_message = nil, error = nil, &block)
  return log_error(error_or_message, &block) if error.nil?

  original_error(TraceHelpers.generate_message(error_or_message, error))
  TraceHelpers.extract_backtrace(error, []).each do |trace|
    original_error(trace) unless trace.nil?
  end
end

#format_severity(severity) ⇒ Object



189
190
191
# File 'lib/story_teller/logging.rb', line 189

def format_severity(severity)
  SEV_LABEL_EXTRA[severity] || super
end

#log_error(error_or_message = nil, &block) ⇒ Object



181
182
183
184
185
186
# File 'lib/story_teller/logging.rb', line 181

def log_error(error_or_message = nil, &block)
  original_error(error_or_message, &block)
  TraceHelpers.extract_backtrace(error_or_message, []).each do |trace|
    original_error(trace) unless trace.nil?
  end
end

#original_errorObject



171
# File 'lib/story_teller/logging.rb', line 171

alias original_error error

#trace(progname = nil, &block) ⇒ Object



193
194
195
# File 'lib/story_teller/logging.rb', line 193

def trace(progname = nil, &block)
  add(Logger::Severity::TRACE, nil, progname, &block)
end