use*_*003 7 python django logging exception
我创建了一个函数log_error(request,traceback),我在异常中调用它.这会将错误信息写入数据库.现在,在我打开每个视图并将其添加到异常处理程序之前,有没有办法自动将所有异常引发到函数,然后调用它?
我已经看到了这个Python错误日志记录,它说要编写自己的sys.excepthook版本.出现异常时会自动调用此函数.我尝试了这个,但是即使我将解决方案复制粘贴到views.py并引发错误,也没有调用my_excepthook.但是,我并没有太努力,因为它无法获得我需要的所有信息.我还需要请求,以便我可以记录用户,网址等信息.
也许那要求太多了?
(我正在使用Django,但这似乎不是Django特有的东西)编辑:是的,确实如此.
JF Sebastian 的建议奏效了。这是一个 Django 解决方案。
在 settings.py MIDDLEWARE_CLASSES 中:
(我将它添加为最后一个,不确定这是正确的还是会导致错误。现在有效。)
'myapp.middleware.ExceptionMiddleware',
Run Code Online (Sandbox Code Playgroud)
在 myapp.middleware.py 中:
import traceback
class ExceptionMiddleware(object):
def process_exception(self, request, exception):
log_error(traceback, request)
Run Code Online (Sandbox Code Playgroud)
就是这样。log_error 是我的函数并写入数据库。从文档https://docs.djangoproject.com/en/dev/howto/error-reporting/中也可以看出,我可以获得局部变量以及请求属性。
| 归档时间: |
|
| 查看次数: |
1352 次 |
| 最近记录: |