Вы можете создать свое собственное так называемое « промежуточное ПО », которое представляет собой систему в Django для подключения к обработке запросов / ответов.
Определив « process_exception", вы можете поймать любое исключение, которое вызывает представление, и делать с ним все, что захотите.
Вот пример ( /middleware.py):
import sys
import traceback
class HandleExceptionsMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
response = self.get_response(request)
return response
def process_exception(self, request, exception):
print("Internal Server Error: " + request.get_full_path(), file=sys.stderr)
print(traceback.format_exc(), file=sys.stderr)
Затем в settings.py вы можете добавить свое промежуточное ПО:
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
...
'<YOUR-APP>.middleware.HandleExceptionsMiddleware',
]
В этом случае мы просто пишем в stderr, который будет сделать его видимым в GAE.