Rails 2.3.5でログのフォーマットを変更したら予想以上に面倒だった件について。
他にもいろんな方法が有るみたいなんだけどrailsのバージョンにって対応方法が違うらしい。
このコードをconfig/initializers の下に適当な名前で配置すれば以下のような感じでログが出力されるようになりました。
めでたしめでたし。
というかログのフォーマットぐらいスマートに変更できるようにしておいてくれ orz
ActiveSupport::BufferedLogger.class_eval do
SEVERITIES = self::Severity.constants.inject({}){ |val, con| val[eval("self::#{con}")] = con; val }
def add_with_format(severity, message = nil, progname = nil, &block)
add_without_format(severity, nil) { "%s [%5s] %s" % [Time.now.strftime("%Y/%m/%d %H:%M:%S"), SEVERITIES[severity], message] }
end
alias_method_chain :add, :format
end
こんな感じになりました。
2010/02/16 16:55:04 [ INFO] Parameters: {“authenticity_token”=>”6Bgs34M1Svuu+BMcirUNyQEXsWMzBRyl5cnvkgxM880=”, “ronly”=>”1″}
2010/02/16 16:55:04 [DEBUG] HogeHoge Load (0.3ms) SELECT * FROM `hoge_hoge` WHERE (hogehoge_at < ’2010-02-16 16:55:04′) ORDER BY hogehoge_at desc LIMIT 1
sakataさんのブログを参考にさせていただきました。
ありがとうございました。
http://blog.sakatam.net/2009/06/how-to-change-the-log-format-of-ruby-on-rails/