Sha256: 1760a3754ee173802b30a26c1032ef1ca4284934c8558e5b210e6753d4b6305e
Contents?: true
Size: 1.26 KB
Versions: 2
Compression:
Stored size: 1.26 KB
Contents
require 'itamae' require 'logger' require 'ansi/code' module Itamae module Logger class Formatter def call(severity, datetime, progname, msg) severity = color("%5s" % severity, severity) "[%s] %s : %s\n" % [format_datetime(datetime), severity, msg2str(msg)] end private def format_datetime(time) time.strftime("%Y-%m-%dT%H:%M:%S%:z") end def msg2str(msg) case msg when ::String msg when ::Exception "#{ msg.message } (#{ msg.class })\n" << (msg.backtrace || []).join("\n") else msg.inspect end end def color(str, severity) color_code = case severity when "INFO" :green when "ERROR" :red else :clear end ANSI.public_send(color_code) { str } end end def self.logger @logger ||= ::Logger.new($stdout).tap do |logger| logger.formatter = Formatter.new end end def self.logger=(l) @logger = l end def self.method_missing(method, *args, &block) logger.public_send(method, *args, &block) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
itamae-1.0.0.beta15 | lib/itamae/logger.rb |
itamae-1.0.0.beta14 | lib/itamae/logger.rb |