Sha256: 8b272dfe78956a2458b7708442f3243a883920bc2dc920fc6183cfaadb5e0a33

Contents?: true

Size: 1.06 KB

Versions: 2

Compression:

Stored size: 1.06 KB

Contents

module LittleLogFriend

  class Formatter < Logger::Formatter

    @@colorize = false

    Format = "%s [%5s] %d %s: %s"

    @@colors = {
      'DEBUG'   => "\e[1;32;1m", # green
      'INFO'    => "\e[0;1m",    # white
      'WARN'    => "\e[1;33;1m", # yello
      'ERROR'   => "\e[1;31;1m", # red
      'FATAL'   => "\e[1;35;1m", # punk, yes PUNK!
      'UNKNOWN' => "\e[0;1m",    # white
      'DEFAULT' => "\e[0m"       # NONE
    }

    def initialize
      super
      @datetime_format = "%Y-%m-%d %H:%M:%S"
    end

    def self.colorize!( options = {} )
      @@colorize = true
      options.each { |key, value| @@colors[key.to_s.upcase] = value }
    end

    # This method is invoked when a log event occurs
    def call ( severity, time, progname, msg )
      msg = Format % [format_datetime(time), severity, $$, progname, msg2str(msg)]
      msg = @@colors[severity] + msg + @@colors['DEFAULT'] if @@colorize
      msg << "\n"
    end

    def number_to_severity ( n )
      severities = [:debug, :info, :warn, :error, :fatal, :unknown]
      severities[n]
    end
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
little_log_friend-0.2.1 lib/little_log_friend/formatter.rb
little_log_friend-0.2.0 lib/little_log_friend/formatter.rb