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