class MqttSrvcLogger

Public Class Methods

new(dir) click to toggle source
# File lib/mqtt_srvc_logger.rb, line 8
def initialize(dir)
  config = Config.for(dir: dir, config_type: 'logger')['loggers']

  @loggers = {}
  @logger_formatter = proc do |severity, datetime, _progname, msg|
    "%s %-6s %s\n" % [datetime, severity, msg]
  end

  config.each do |logger_config|
    logger_config = RecursiveOpenStruct.new(logger_config)

    @loggers[logger_config.path] = configured_logger(logger_config)
  end
end

Public Instance Methods

data(msg) click to toggle source
# File lib/mqtt_srvc_logger.rb, line 31
def data(msg)
  each_logger { |logger| logger.info(msg.magenta) }
end
debug(msg) click to toggle source
# File lib/mqtt_srvc_logger.rb, line 23
def debug(msg)
  each_logger { |logger| logger.debug(msg.light_blue) }
end
error(msg) click to toggle source
# File lib/mqtt_srvc_logger.rb, line 39
def error(msg)
  each_logger { |logger| logger.error(msg.red) }
end
error_bold(msg) click to toggle source
# File lib/mqtt_srvc_logger.rb, line 43
def error_bold(msg)
  each_logger { |logger| logger.error(msg.red.bold) }
end
Also aliased as: fatal
fatal(msg)
Alias for: error_bold
info(msg) click to toggle source
# File lib/mqtt_srvc_logger.rb, line 27
def info(msg)
  each_logger { |logger| logger.info(msg.green) }
end
warn(msg) click to toggle source
# File lib/mqtt_srvc_logger.rb, line 35
def warn(msg)
  each_logger { |logger| logger.warn(msg.yellow) }
end

Private Instance Methods

configured_logger(logger_config) click to toggle source
# File lib/mqtt_srvc_logger.rb, line 57
def configured_logger(logger_config)
  if logger_config.path == 'STDOUT'
    STDOUT.sync = true
    logger = Logger.new(STDOUT)
  else
    create_log_dir(File.dirname(logger_config.path))

    logger = Logger.new(
      logger_config.path,
      logger_config.count,
      logger_config.size
    )
  end

  logger.level = logger_config.level if logger_config.level
  logger.formatter = @logger_formatter

  logger
end
create_log_dir(dir) click to toggle source
# File lib/mqtt_srvc_logger.rb, line 77
def create_log_dir(dir)
  Dir.mkdir(dir) unless Dir.exist?(dir)
end
each_logger() { |logger| ... } click to toggle source
# File lib/mqtt_srvc_logger.rb, line 51
def each_logger
  @loggers.each do |_key, logger|
    yield logger
  end
end