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