class Tablexi::Logger::Standard

Attributes

logger[R]
severity[R]

Public Class Methods

new(logger, options = {}) click to toggle source
# File lib/tablexi/logger/standard.rb, line 11
def initialize(logger, options = {})
  defaults = { severity: :unknown }
  options = defaults.merge(options)
  severity = options[:severity]
  raise ArgumentError, "Severity `#{severity}` must be one of #{SEVERITIES}" unless SEVERITIES.include?(severity)

  @logger = logger
  @severity = severity
end

Public Instance Methods

call(exception_or_message, options) click to toggle source
# File lib/tablexi/logger/standard.rb, line 21
def call(exception_or_message, options)
  logger.public_send severity, generate_log(exception_or_message, options)
end

Private Instance Methods

generate_log(exception_or_message, options) click to toggle source
# File lib/tablexi/logger/standard.rb, line 27
def generate_log(exception_or_message, options)
  options = Hash[options]

  message = []
  message << (exception_or_message.respond_to?(:message) ? exception_or_message.message : exception_or_message)
  message << options.map { |k, v| "#{k}: #{v}" } if options.size > 0
  message << exception_or_message.backtrace if exception_or_message.respond_to?(:backtrace)
  message.flatten.join("\n")
end