class Hiera::FallbackLogger

Select from a given list of loggers the first one that it suitable and use that as the actual logger

@api private

Public Class Methods

new(*implementations) click to toggle source

Chooses the first suitable logger. For all of the loggers that are unsuitable it will issue a warning using the suitable logger stating that the unsuitable logger is not being used.

@param implementations [Array<Hiera::Logger>] the implementations to choose from @raises when there are no suitable loggers

# File lib/hiera/fallback_logger.rb, line 12
def initialize(*implementations)
  warnings = []
  @implementation = implementations.find do |impl|
    if impl.respond_to?(:suitable?)
      if impl.suitable?
        true
      else
        warnings << "Not using #{impl.name}. It does not report itself to be suitable."
        false
      end
    else
      true
    end
  end

  if @implementation.nil?
    raise "No suitable logging implementation found."
  end

  warnings.each { |message| warn(message) }
end

Public Instance Methods

debug(message) click to toggle source
# File lib/hiera/fallback_logger.rb, line 38
def debug(message)
  @implementation.debug(message)
end
warn(message) click to toggle source
# File lib/hiera/fallback_logger.rb, line 34
def warn(message)
  @implementation.warn(message)
end