您可以通过普通的 Python 日志记录在视图中记录错误,或将响应状态设置为 500(假设您的视图现在返回成功响应的状态码为 200)。
编辑:工作示例
我不是一个日志记录专家,但我认为您在 development.ini/production.ini 中的日志记录配置会被识别,下面的示例似乎证明了这一点,但您可以自行判断.....
从默认配置更改的内容
[formatter_generic]
format = y u no work??!!?? %(message)s
视图
from pyramid.view import view_config
from webob import Response
import logging
log = logging.getLogger(__name__)
@view_config(route_name='home', renderer='templates/mytemplate.pt')
def my_view(request):
raise ValueError("oops")
return {'project':'tstLogError'}
@view_config(context=Exception)
def exception_view(context, request):
log.error("The error was: %s" % context, exc_info=(context))
return Response(status_int=500, body=str(context))
from pyramid.view import view_config
from webob import Response
控制台输出:
serving on http://0.0.0.0:6543
y u no work??!!?? The error was: oops
Traceback (most recent call last):
File "/home/twillis/projects/TestLogError/local/lib/python2.7/site-packages/pyramid/tweens.py", line 20, in excview_tween
response = handler(request)
File "/home/twillis/projects/TestLogError/local/lib/python2.7/site-packages/pyramid/router.py", line 164, in handle_request
response = view_callable(context, request)
File "/home/twillis/projects/TestLogError/local/lib/python2.7/site-packages/pyramid/config/views.py", line 333, in rendered_view
result = view(context, request)
File "/home/twillis/projects/TestLogError/local/lib/python2.7/site-packages/pyramid/config/views.py", line 471, in _requestonly_view
response = view(request)
File "/home/twillis/projects/TestLogError/tstLogError/tstlogerror/views.py", line 8, in my_view
raise ValueError("oops")
ValueError: oops
![browser screenshot](https://istack.dev59.com/3GHzj.webp)