Class: Hiera::FallbackLogger

### Home Classes Methods

### In Files

- lib/hiera/fallback_logger.rb

### Parent

Object

### Methods

- ::new
- #debug
- #warn

### Class/Module Index

Quicksearch

- Hiera
- Hiera::Backend
- Hiera::Backend::Json_backend
- Hiera::Backend::Yaml_backend
- Hiera::Config
- Hiera::Console_logger
- Hiera::Error
- Hiera::FallbackLogger
- Hiera::Filecache
- Hiera::Interpolate
- Hiera::InterpolationLoop
- Hiera::InvalidConfigurationError
- Hiera::Noop_logger
- Hiera::Puppet_logger
- Hiera::RecursiveGuard
- Hiera::Util

No matching classes.

# 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

[Validate]

Generated with the Darkfish Rdoc Generator 2.