class Semlogr::SelfLogger

Attributes

logger[RW]

Public Class Methods

debug(message, error = nil) click to toggle source
# File lib/semlogr/self_logger.rb, line 5
def self.debug(message, error = nil)
  log(:debug, message, error)
end
error(message, error = nil) click to toggle source
# File lib/semlogr/self_logger.rb, line 17
def self.error(message, error = nil)
  log(:error, message, error)
end
fatal(message, error = nil) click to toggle source
# File lib/semlogr/self_logger.rb, line 21
def self.fatal(message, error = nil)
  log(:fatal, message, error)
end
info(message, error = nil) click to toggle source
# File lib/semlogr/self_logger.rb, line 9
def self.info(message, error = nil)
  log(:info, message, error)
end
warn(message, error = nil) click to toggle source
# File lib/semlogr/self_logger.rb, line 13
def self.warn(message, error = nil)
  log(:warn, message, error)
end

Private Class Methods

format_message(severity, message, error) click to toggle source
# File lib/semlogr/self_logger.rb, line 36
def format_message(severity, message, error)
  formatted = +"[#{Time.now.iso8601(3)}] #{severity.upcase}: #{message}"

  if error
    case error
    when StandardError
      formatted << "\n#{error.class}: #{error.message}"

      if error.backtrace&.any?
        formatted << "\n\s\s#{error.backtrace.join("\n\s\s")}"
      end
    else
      formatted << "\n#{error}"
    end
  end

  formatted << "\n"
end
log(severity, message, error) click to toggle source
# File lib/semlogr/self_logger.rb, line 30
def log(severity, message, error)
  return unless logger

  logger << format_message(severity, message, error)
end