class OpStack::Logger::Formatter

Formatter based on itamae by ryota.arai@gmail.com - lib/itamae/logger.rb

Attributes

colored[RW]

Public Instance Methods

call(severity, datetime, progname, msg) click to toggle source
# File lib/opstack/logging.rb, line 10
def call(severity, datetime, progname, msg)
  log = "%s : %s\n" % ["%5s" % severity, msg2str(msg)]
  if colored
    colorize(log, severity)
  else
    log
  end
end
color(code) { || ... } click to toggle source
# File lib/opstack/logging.rb, line 19
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/opstack/logging.rb, line 41
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/opstack/logging.rb, line 29
def msg2str(msg)
  case msg
  when ::String
    msg
  when ::Exception
    "#{ msg.message } (#{ msg.class })\n" <<
    (msg.backtrace || []).join("\n")
  else
    msg.inspect
  end
end