Merge pull request #2133 from jstorimer/ensure-status-codes-are-logged-properly

Ensure that status codes are logged properly
This commit is contained in:
José Valim 2011-07-18 11:05:37 -07:00
commit b475f74da5
2 changed files with 23 additions and 4 deletions

@ -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|

@ -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