From 42af6d47aa95600426a1d9ab53e72ab07c28a91a Mon Sep 17 00:00:00 2001 From: Bert Pareyn Date: Thu, 13 Jun 2013 14:46:25 +0100 Subject: [PATCH] Add improved logging --- config/initializers/log_formatting.rb | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 config/initializers/log_formatting.rb diff --git a/config/initializers/log_formatting.rb b/config/initializers/log_formatting.rb new file mode 100644 index 0000000..929d1d8 --- /dev/null +++ b/config/initializers/log_formatting.rb @@ -0,0 +1,27 @@ +class ActiveSupport::BufferedLogger + def formatter=(formatter) + @log.formatter = formatter + end +end + +class Formatter + SEVERITY_TO_TAG_MAP = {'DEBUG'=>'meh', 'INFO'=>'fyi', 'WARN'=>'hmm', 'ERROR'=>'wtf', 'FATAL'=>'omg', 'UNKNOWN'=>'???'} + SEVERITY_TO_COLOR_MAP = {'DEBUG'=>'0;37', 'INFO'=>'32', 'WARN'=>'33', 'ERROR'=>'31', 'FATAL'=>'31', 'UNKNOWN'=>'37'} + USE_HUMOROUS_SEVERITIES = false + + def call(severity, time, progname, msg) + if USE_HUMOROUS_SEVERITIES + formatted_severity = sprintf("%-3s","#{SEVERITY_TO_TAG_MAP[severity]}") + else + formatted_severity = sprintf("%-5s","#{severity}") + end + + formatted_time = time.strftime("%Y-%m-%d %H:%M:%S.") << time.usec.to_s[0..2].rjust(3) + color = SEVERITY_TO_COLOR_MAP[severity] + + "\033[0;37m#{formatted_time}\033[0m [\033[#{color}m#{formatted_severity}\033[0m] #{msg.strip} (pid:#{$$})\n" + end + +end + +Rails.logger.formatter = Formatter.new