Railsのログ書式を変更する方法
Ruby on Railsからログ出力すると、日付やログレベルが表示されなくて困る場合があります。そこで、手っ取り早くログフォーマットを変更するスニペットを書いてみました。
ActiveSupportでLoggerの出力メソッドを上書きしてるのが原因のようなので、そこをフックしてログを整形してます。
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 [%s] %s" % [Time.now, SEVERITIES[severity], message] } end alias_method_chain :add, :format end
このスニペットを実行すると、
Thu Jun 25 16:23:14 +0900 2009 [INFO] XXXXXXX
のようなログが出力されるようになります。
フォーマットは適当なので、好みに応じて適宜修正してご利用ください。
No comments
Jump to comment form | comments rss [?] | trackback uri [?]