提交 feb248ca 编写于 作者: A Aaron Patterson

remove env access from debug_exceptions

Creates fewer request objects and helps to abstract away from internals
上级 f16a33b6
...@@ -55,18 +55,17 @@ def call(env) ...@@ -55,18 +55,17 @@ def call(env)
response response
rescue Exception => exception rescue Exception => exception
raise exception unless request.show_exceptions? raise exception unless request.show_exceptions?
render_exception(env, exception) render_exception(request, exception)
end end
private private
def render_exception(env, exception) def render_exception(request, exception)
backtrace_cleaner = env['action_dispatch.backtrace_cleaner'] backtrace_cleaner = request.get_header('action_dispatch.backtrace_cleaner')
wrapper = ExceptionWrapper.new(backtrace_cleaner, exception) wrapper = ExceptionWrapper.new(backtrace_cleaner, exception)
log_error(env, wrapper) log_error(request, wrapper)
if env['action_dispatch.show_detailed_exceptions'] if request.get_header('action_dispatch.show_detailed_exceptions')
request = Request.new(env)
traces = wrapper.traces traces = wrapper.traces
trace_to_show = 'Application Trace' trace_to_show = 'Application Trace'
...@@ -108,8 +107,8 @@ def render(status, body, format) ...@@ -108,8 +107,8 @@ def render(status, body, format)
[status, {'Content-Type' => "#{format}; charset=#{Response.default_charset}", 'Content-Length' => body.bytesize.to_s}, [body]] [status, {'Content-Type' => "#{format}; charset=#{Response.default_charset}", 'Content-Length' => body.bytesize.to_s}, [body]]
end end
def log_error(env, wrapper) def log_error(request, wrapper)
logger = logger(env) logger = logger(request)
return unless logger return unless logger
exception = wrapper.exception exception = wrapper.exception
...@@ -125,8 +124,8 @@ def log_error(env, wrapper) ...@@ -125,8 +124,8 @@ def log_error(env, wrapper)
end end
end end
def logger(env) def logger(request)
env['action_dispatch.logger'] || stderr_logger request.logger || stderr_logger
end end
def stderr_logger def stderr_logger
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册