Class: Pupa::Logger

Inherits:
Object
  • Object
show all
Defined in:
lib/pupa/logger.rb

Overview

A logger factory.

Class Method Summary collapse

Class Method Details

.new(progname, level: 'INFO', logdev: STDOUT) ⇒ Logger

Returns a configured logger.

Parameters:

  • progname (String)

    the name of the program performing the logging

  • level (String) (defaults to: 'INFO')

    the log level, one of "DEBUG", "INFO", "WARN", "ERROR", "FATAL" or "UNKNOWN"

  • logdev (String, IO) (defaults to: STDOUT)

    the log device

Returns:

  • (Logger)

    a configured logger



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 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