class Metrux::ConfigBuilders::Logger

Constants

DEFAULT_LOG_LEVEL
DEFAULT_LOG_PATH
LOG_FILE_KEY
LOG_LEVEL_KEY

Attributes

yaml[R]

Public Class Methods

new(yaml) click to toggle source
# File lib/metrux/config_builders/logger.rb, line 10
def initialize(yaml)
  @yaml = yaml
end

Public Instance Methods

build() click to toggle source
# File lib/metrux/config_builders/logger.rb, line 14
def build
  ::Logger.new(log_file).tap do |logger|
    logger.level = log_level
    logger.formatter = ::Logger::Formatter.new
  end
rescue => e
  Kernel.warn(
    '[WARNING] Cound\'t configure Metrux\'s logger. '\
    "#{e.class}: #{e.message}"
  )
  nil
end

Private Instance Methods

log_file() click to toggle source
# File lib/metrux/config_builders/logger.rb, line 31
def log_file
  from_config = (ENV[LOG_FILE_KEY] || yaml[:log_file]).presence

  return DEFAULT_LOG_PATH if from_config.blank?

  from_config == 'STDOUT'.freeze ? STDOUT : from_config
end
log_level() click to toggle source
# File lib/metrux/config_builders/logger.rb, line 39
def log_level
  ::Logger.const_get(
    (
      ENV[LOG_LEVEL_KEY] || yaml[:log_level] || DEFAULT_LOG_LEVEL
    ).to_s.upcase
  )
end