Skip to content
Browse files

Merge pull request #2133 from jstorimer/ensure-status-codes-are-logge…

…d-properly

Ensure that status codes are logged properly
  • Loading branch information...
2 parents 8efc0f1 + ac81af4 commit b475f74da5ec2ac4048f70d9063a1d4c0d63b546 @josevalim josevalim committed Jul 18, 2011
Showing with 23 additions and 4 deletions.
  1. +4 −4 actionpack/lib/action_controller/base.rb
  2. +19 −0 actionpack/test/controller/log_subscriber_test.rb
View
8 actionpack/lib/action_controller/base.rb
@@ -212,16 +212,16 @@ def self.without_modules(*modules)
# also include them at the bottom.
AbstractController::Callbacks,
+ # Append rescue at the bottom to wrap as much as possible.
+ Rescue,
+
# Add instrumentations hooks at the bottom, to ensure they instrument
# all the methods properly.
Instrumentation,
# Params wrapper should come before instrumentation so they are
# properly showed in logs
- ParamsWrapper,
-
- # The same with rescue, append it at the end to wrap as much as possible.
- Rescue
+ ParamsWrapper
]
MODULES.each do |mod|
View
19 actionpack/test/controller/log_subscriber_test.rb
@@ -6,6 +6,13 @@ module Another
class LogSubscribersController < ActionController::Base
wrap_parameters :person, :include => :name, :format => :json
+ class SpecialException < Exception
+ end
+
+ rescue_from SpecialException do
+ head :status => 406
+ end
+
def show
render :nothing => true
end
@@ -39,6 +46,10 @@ def with_exception
raise Exception
end
+ def with_rescued_exception
+ raise SpecialException
+ end
+
end
end
@@ -195,6 +206,14 @@ def test_process_action_with_exception_includes_http_status_code
assert_match(/Completed 500/, logs.last)
end
+ def test_process_action_with_rescued_exception_includes_http_status_code
+ get :with_rescued_exception
+ wait
+
+ assert_equal 2, logs.size
+ assert_match(/Completed 406/, logs.last)
+ end
+
def logs
@logs ||= @logger.logged(:info)
end

0 comments on commit b475f74

Please sign in to comment.
Something went wrong with that request. Please try again.