diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2009-12-22 17:31:29 -0800 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2009-12-22 17:31:29 -0800 |
commit | e7ef57dd0ddec3d487d3ffd58ff028bdf11a33f9 (patch) | |
tree | dfc9e049c937a56c2fc1e80ae8e8b71880d1615d /actionpack/lib/action_controller/metal/logger.rb | |
parent | ec095456d859da4a09c7401585c211dc0f01fccd (diff) | |
parent | f737c2d69bb3659a553c7c0e21e316b1a4a1b98a (diff) | |
download | rails-e7ef57dd0ddec3d487d3ffd58ff028bdf11a33f9.tar.gz rails-e7ef57dd0ddec3d487d3ffd58ff028bdf11a33f9.tar.bz2 rails-e7ef57dd0ddec3d487d3ffd58ff028bdf11a33f9.zip |
Merge
Diffstat (limited to 'actionpack/lib/action_controller/metal/logger.rb')
-rw-r--r-- | actionpack/lib/action_controller/metal/logger.rb | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/actionpack/lib/action_controller/metal/logger.rb b/actionpack/lib/action_controller/metal/logger.rb new file mode 100644 index 0000000000..956d7dd371 --- /dev/null +++ b/actionpack/lib/action_controller/metal/logger.rb @@ -0,0 +1,34 @@ +require 'abstract_controller/logger' + +module ActionController + module Logger + # Override process_action in the AbstractController::Base + # to log details about the method. + def process_action(action) + result = ActiveSupport::Notifications.instrument(:process_action, + :controller => self, :action => action) do + super + end + + if logger + log = AbstractController::Logger::DelayedLog.new do + "\n\nProcessing #{self.class.name}\##{action_name} " \ + "to #{request.formats} (for #{request_origin}) " \ + "[#{request.method.to_s.upcase}]" + end + + logger.info(log) + end + + result + end + + private + + # Returns the request origin with the IP and time. This needs to be cached, + # otherwise we would get different results for each time it calls. + def request_origin + @request_origin ||= "#{request.remote_ip} at #{Time.now.to_s(:db)}" + end + end +end |