Class: Webgen::CLI::Logger

Inherits:
Logger
  • Object
show all
Defined in:
lib/webgen/cli/logger.rb

Overview

The logger class used by the command line interface.

Instance Attribute Summary collapse

Attributes inherited from Logger

#verbose

Instance Method Summary collapse

Methods inherited from Logger

#format_message, #vinfo

Constructor Details

#initialize(outdev = $stdout) ⇒ Logger

Create a new Logger object for the command line interface.



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/webgen/cli/logger.rb', line 16

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

Instance Attribute Details

#prefixObject

Returns the value of attribute prefix.



13
14
15
# File 'lib/webgen/cli/logger.rb', line 13

def prefix
  @prefix
end