class GreenLog::ClassicLogger

An alternative to `GreenLog::Logger` for older code, which implements the same interface as the built-in Ruby `::Logger`.

Attributes

downstream[R]

Public Class Methods

new(downstream) click to toggle source
# File lib/green_log/classic_logger.rb, line 14
def initialize(downstream)
  @downstream = downstream
end

Public Instance Methods

add(severity, message = :unspecified, &block) click to toggle source
# File lib/green_log/classic_logger.rb, line 22
def add(severity, message = :unspecified, &block)
  severity = Integer(severity)
  return if severity < severity_threshold

  entry = Entry.build(severity, resolve_message(message, &block))

  downstream << entry

  true
end

Private Instance Methods

extract_message(message, &block) click to toggle source
# File lib/green_log/classic_logger.rb, line 51
def extract_message(message, &block)
  if block
    raise ArgumentError, "both message and block provided" unless message == :unspecified

    return block.call
  end
  raise ArgumentError, "no message provided" if message == :unspecified

  message
end
normalise_message(message) click to toggle source
# File lib/green_log/classic_logger.rb, line 62
def normalise_message(message)
  return message if message.is_a?(Exception)
  return message.to_str if message.respond_to?(:to_str)

  message.inspect
end
resolve_message(message, &block) click to toggle source
# File lib/green_log/classic_logger.rb, line 47
def resolve_message(message, &block)
  normalise_message(extract_message(message, &block))
end