通常のPythonロギングを使用して、ビューにエラーを記録できます。または、レスポンスのステータスを500に設定します(レスポンスが成功したことを示すビューのステータスが200になったと仮定して)。
編集:作業例
私は伐採専門家ではないんだけど、私はdevelopment.iniの/ production.iniであなたのロギングの設定がピックアップされるだろう印象の下にあったが、以下の例では、ことを証明するようですしかし、あなたは裁判官も.....デフォルトから設定をログに記録する
変更
[formatter_generic]
# format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s
format = y u no work??!!?? %(message)s
# End logging configuration
ビュー
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
エラーを自分で記録するか、エラーを再確認する必要があります。エラーを起こすとログに記録されますが、ビューはレンダリングされません。ビュー内でエラーを記録すると、ログに記録され、ビューがレンダリングされます。 –