【发布时间】:2013-10-06 19:54:19
【问题描述】:
我的应用中有一个特定的视图,如果一切顺利完成,它应该返回 HttpResponse(''),否则返回 HttpResponseBadRequest()。
此视图适用于外部数据,因此可能会引发一些意外异常。 我当然需要知道发生了什么。所以我有这样的感觉:
def my_view(request):
try:
# a lot of code
return HttpResponse('')
except:
import logging
logger = logging.getLogger('django.request')
# logger.error(extra={'request': request}) or logger.exception()
return HttpResponseBadRequest('')
如果重要的话,我有一个默认的日志配置(django 1.5)。
logger.exception 仅发送少量回溯,不发送请求数据。
logger.error 只发送请求数据。
所以问题是如何获得与 django 发送的完全相同的回溯(具有相同的主题/正文)。 我认为一定有一些我找不到的干净简单的解决方案。
更新
因此,使用修补过的exception 方法我最终得到了以下代码:
logger.exception('Internal Server Error: %s', request.path,
extra={'status_code': 500, 'request': request})
产生与内置 django 日志记录相同的电子邮件回溯。
【问题讨论】:
-
你能告诉我们你的 django 日志配置(来自设置文件)吗?
-
我使用默认日志记录(不要在 settings.py 中设置我自己的
LOGGING)。无论如何,我得到了答案(请参阅更新)。