class Itamae::Logger::Formatter

Attributes

colored[RW]

Public Class Methods

new() click to toggle source
# File lib/itamae/logger.rb, line 74
def initialize
  @color = nil
end

Public Instance Methods

call(severity, datetime, progname, msg) click to toggle source
# File lib/itamae/logger.rb, line 78
def call(severity, datetime, progname, msg)
  log = "%s : %s" % ["%5s" % severity, msg2str(msg)]

  (colored ? colorize(log, severity) : log) + "\n"
end
color(code) { || ... } click to toggle source
# File lib/itamae/logger.rb, line 84
def color(code)
  prev_color = @color
  @color = code
  yield
ensure
  @color = prev_color
end

Private Instance Methods

colorize(str, severity) click to toggle source
# File lib/itamae/logger.rb, line 106
def colorize(str, severity)
  if @color
    color_code = @color
  else
    color_code = case severity
                 when "INFO"
                   :clear
                 when "WARN"
                   :magenta
                 when "ERROR"
                   :red
                 else
                   :clear
                 end
  end
  ANSI.public_send(color_code) { str }
end
msg2str(msg) click to toggle source
# File lib/itamae/logger.rb, line 94
def msg2str(msg)
  case msg
  when ::String
    msg
  when ::Exception
    "#{ msg.message } (#{ msg.class })\n" <<
    (msg.backtrace || []).join("\n")
  else
    msg.inspect
  end
end