[Rails]ログに色付けして出力させる
( diary )テストコードを書き始める前はじゃんじゃんprintしまくってログをみて実装していたのでガンガン出力されるデバッグ分が 色分けされてないとどうにも見分けがつかない状況だったので色分けできるようにしてみました。
class Logger class Formatter def call(severity, time, progname, msg) msg = msg.to_s.gsub(/(SELECT.+)/, "\033\[1;33m" + '[SQL] \1' + "\033\[0m") msg = msg.to_s.gsub(/(UPDATE.+)/, "\033\[1;34m" + '[SQL] \1' + "\033\[0m") msg = msg.to_s.gsub(/(DELETE.+)/, "\033\[1;35m" + '[SQL] \1' + "\033\[0m") msg = msg.to_s.gsub(/(INSERT.+)/, "\033\[1;32m" + '[SQL] \1' + "\033\[0m") case severity when "FATAL" # \033[#{esc};#{bg};#{fg}m hogehoge \033[0m "#{time.to_s(:db)} \033[1;33;41m[#{severity}]\033[0m #{msg}\n" when "ERROR" "#{time.to_s(:db)} \033[1;33;45m[#{severity}]\033[0m #{msg}\n" when "WARN" "#{time.to_s(:db)} \033[1;30;43m[#{severity}]\033[0m #{msg}\n" when "INFO" "#{time.to_s(:db)} \033[1;36;40m[#{severity}]\033[0m #{msg}\n" else "#{time.to_s(:db)} \033[1;34;40m[#{severity}]\033[0m #{msg}\n" end end end end
■参照URL http://api.rubyonrails.org/classes/ActiveSupport/BufferedLogger.html http://blog.rantan.jp/archives/107