class Webgen::CLI::Logger

The logger class used by the command line interface.

Attributes

prefix[RW]

Public Class Methods

new(outdev = $stdout) click to toggle source

Create a new Logger object for the command line interface.

Calls superclass method
# File lib/webgen/cli/logger.rb, line 15
def initialize(outdev = $stdout)
  super(outdev)
  @prefix = ''
  outdev.sync = true if outdev.respond_to?(:sync=)
  self.formatter = Proc.new do |severity, timestamp, progname, msg|
    msg = msg.dup
    msg.gsub!(/<.*?>/) {|m| Utils.bold(m)}
    msg.gsub!(/\n/, "\n      ")
    case severity
    when 'INFO'
      msg.sub!(/^\s*\[(?:create|update)\]/) {|m| Utils.bold(Utils.green(m))}
      "%s%-5s %s\n" % [@prefix, severity, msg]
    when 'WARN'
      "%s%s%-5s%s %s\n" % [@prefix, Utils.bold + Utils.yellow, severity, Utils.reset, msg]
    when 'ERROR', 'FATAL'
      "%s%s%-5s%s %s\n" % [@prefix, Utils.bold + Utils.red, severity, Utils.reset, msg]
    when 'DEBUG'
      "%s%-5s%s %s\n" % [@prefix, severity, progname ? " (#{progname})" : '', msg]
    else
      raise ArgumentError, 'Unsupported logger severity level'
    end
  end
  self.level = ::Logger::INFO
end