BufferedLogger
デフォルトのロギングがrubyのLoggerクラスではなく、ActiveSupport::BufferedLogger クラスに変わっています。
WebJourneyでは、Applicationのロギングとフレームワークのロギングを明確に区別するために、
class Logger %w(fatal error warn info debug).each do |level| module_eval %{ def app_#{level}(msg, &block) if block self.#{level} wj_msg_build('#{level}', msg) do block.call end else self.#{level} wj_msg_build('#{level}', msg) end end } end private def wj_msg_build(level, msg) "[WebJourney][#{level.camelize}] - #{msg}" end end
で、Loggerクラスに app_* メソッドを付け加えていたのですが、どうもこれはいけない。ということで、lib/app_logging.rb に AppLoggingという形でモジュールを定義して、environment.rb に
RAILS_DEFAULT_LOGGER.extend(AppLogging)
でオブジェクト拡張して解決。Loggerクラスの拡張がいらなくなったと思うので削除っと。