class Pupa::Logger

A logger factory.

Public Class Methods

new(progname, level: 'INFO', logdev: STDOUT) click to toggle source

Returns a configured logger.

@param [String] progname the name of the program performing the logging @param [String] level the log level, one of “DEBUG”, “INFO”, “WARN”,

"ERROR", "FATAL" or "UNKNOWN"

@param [String,IO] logdev the log device @return [Logger] a configured logger

# File lib/pupa/logger.rb, line 15
def self.new(progname, level: 'INFO', logdev: STDOUT)
  logger = ::Logger.new(logdev)
  logger.level = ::Logger.const_get(level)
  logger.progname = progname
  logger.formatter = proc do |severity, datetime, progname, msg|
    message = "#{datetime.strftime('%T')} #{severity} #{progname}: #{msg}\n"
    case severity
    when 'DEBUG'
      message.magenta
    when 'INFO'
      message.white
    when 'WARN'
      message.yellow
    when 'ERROR'
      message.red
    when 'FATAL'
      message.bold.red_on_white
    end
  end
  logger
end