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
15 def initialize(outdev = $stdout)
16   super(outdev)
17   @prefix = ''
18   outdev.sync = true if outdev.respond_to?(:sync=)
19   self.formatter = Proc.new do |severity, timestamp, progname, msg|
20     msg = msg.dup
21     msg.gsub!(/<.*?>/) {|m| Utils.bold(m)}
22     msg.gsub!(/\n/, "\n      ")
23     case severity
24     when 'INFO'
25       msg.sub!(/^\s*\[(?:create|update)\]/) {|m| Utils.bold(Utils.green(m))}
26       "%s%-5s %s\n" % [@prefix, severity, msg]
27     when 'WARN'
28       "%s%s%-5s%s %s\n" % [@prefix, Utils.bold + Utils.yellow, severity, Utils.reset, msg]
29     when 'ERROR', 'FATAL'
30       "%s%s%-5s%s %s\n" % [@prefix, Utils.bold + Utils.red, severity, Utils.reset, msg]
31     when 'DEBUG'
32       "%s%-5s%s %s\n" % [@prefix, severity, progname ? " (#{progname})" : '', msg]
33     else
34       raise ArgumentError, 'Unsupported logger severity level'
35     end
36   end
37   self.level = ::Logger::INFO
38 end