Class: Errsight::Logger

Inherits:
Logger
  • Object
show all
Defined in:
lib/errsight/logger.rb

Overview

A Logger-compatible class that forwards log entries to Errsight and optionally delegates to a backing logger.

Constant Summary collapse

LEVEL_MAP =
{
  DEBUG   => :debug,
  INFO    => :info,
  WARN    => :warning,
  ERROR   => :error,
  FATAL   => :fatal,
  UNKNOWN => :info
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(backing_logger = nil) ⇒ Logger

Returns a new instance of Logger.



16
17
18
19
# File 'lib/errsight/logger.rb', line 16

def initialize(backing_logger = nil)
  super(IO::NULL)
  @backing_logger = backing_logger
end

Instance Method Details

#add(severity, message = nil, progname = nil, &block) ⇒ Object Also known as: log



21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/errsight/logger.rb', line 21

def add(severity, message = nil, progname = nil, &block)
  # Forward to the backing logger if present
  @backing_logger&.add(severity, message, progname, &block)

  message = block_given? ? yield : message
  message ||= progname
  return true if message.nil?

  level = LEVEL_MAP[severity] || :info
  Errsight.log(level: level, message: message.to_s)
  true
end