class Cinch::Logger::FormattedLogger

@version 2.0.0

Constants

Colors

@private

Public Instance Methods

exception(e) click to toggle source

(see Cinch::Logger#exception)

# File lib/cinch/logger/formatted_logger.rb, line 20
def exception(e)
  lines = ["#{e.backtrace.first}: #{e.message} (#{e.class})"]
  lines.concat e.backtrace[1..-1].map {|s| "\t" + s}
  log(lines, :exception, :error)
end

Private Instance Methods

colorize(text, *codes) click to toggle source

@api private @param [String] text text to colorize @param [Array<Symbol>] codes array of colors to apply @return [String] colorized string

# File lib/cinch/logger/formatted_logger.rb, line 35
def colorize(text, *codes)
  return text unless @output.tty?
  codes = Colors.values_at(*codes).join
  text = text.gsub(/#{Regexp.escape(Colors[:reset])}/, Colors[:reset] + codes)
  codes + text + Colors[:reset]
end
format_debug(message) click to toggle source
# File lib/cinch/logger/formatted_logger.rb, line 49
def format_debug(message)
  "%s %s %s" % [timestamp, colorize("!!", :yellow), message]
end
format_exception(message) click to toggle source
# File lib/cinch/logger/formatted_logger.rb, line 93
def format_exception(message)
  "%s %s %s" % [timestamp, colorize("!!", :red), message]
end
format_general(message) click to toggle source
# File lib/cinch/logger/formatted_logger.rb, line 42
def format_general(message)
  # :print: doesn't call all of :space: so use both.
  message.gsub(/[^[:print:][:space:]]/) do |m|
    colorize(m.inspect[1..-2], :bg_white, :black)
  end
end
format_incoming(message) click to toggle source
# File lib/cinch/logger/formatted_logger.rb, line 61
def format_incoming(message)
  pre, msg = message.split(" :", 2)
  pre_parts = pre.split(" ")

  prefix = colorize(">>", :green)

  if pre_parts.size == 1
    pre_parts[0] = colorize(pre_parts[0], :bold)
  else
    pre_parts[0] = colorize(pre_parts[0], :blue)
    pre_parts[1] = colorize(pre_parts[1], :bold)
  end

  "%s %s %s %s" % [timestamp,
                    prefix,
                    pre_parts.join(" "),
                    msg ? colorize(":#{msg}", :yellow) : ""]
end
format_info(message) click to toggle source
# File lib/cinch/logger/formatted_logger.rb, line 57
def format_info(message)
  "%s %s %s" % [timestamp, "II", message]
end
format_outgoing(message) click to toggle source
# File lib/cinch/logger/formatted_logger.rb, line 80
def format_outgoing(message)
  pre, msg = message.split(" :", 2)
  pre_parts = pre.split(" ")

  prefix = colorize("<<", :red)
  pre_parts[0] = colorize(pre_parts[0], :bold)

  "%s %s %s %s" % [timestamp,
                   prefix,
                   pre_parts.join(" "),
                   msg ? colorize(":#{msg}", :yellow) : ""]
end
format_warn(message) click to toggle source
# File lib/cinch/logger/formatted_logger.rb, line 53
def format_warn(message)
  format_debug(message)
end
timestamp() click to toggle source
# File lib/cinch/logger/formatted_logger.rb, line 27
def timestamp
  Time.now.strftime("[%Y/%m/%d %H:%M:%S.%L]")
end