require "#{File.dirname(__FILE__)}/abstract_note" module Footnotes module Notes class LogNote < AbstractNote @@log = [] def self.log(message) @@log << message end def initialize(controller) @controller = controller end def title "Log (#{log.count("\n")})" end def content escape(log.gsub(/\e\[.+?m/, '')).gsub("\n", '
') end def log unless @log @log = @@log.join('') @@log = [] if rindex = @log.rindex('Processing '+@controller.class.name+'#'+@controller.action_name) @log = @log[rindex..-1] end end @log end # FIXME (andre 2011-04-04) Fix this to collect Rails 3 logs module LoggingExtensions def add(*args, &block) logged_message = super Footnotes::Notes::LogNote.log(logged_message) logged_message end end Rails.logger.extend LoggingExtensions end end end