我已经创建了一个函数log_error(request, traceback),并在我的异常中调用它。这将错误信息写入数据库。现在,在我打开每个视图并添加异常处理程序之前,是否有一种自动将所有异常引发到一个函数的方法,然后调用此函数的方法?
我看到了这个Python error logging,它说要编写自己的sys.excepthook版本。当出现异常时,会自动调用此函数。我尝试过这样做,但即使我将解决方案复制粘贴到views.py中并引发错误,也没有调用my_excepthook。无论如何,它也无法获取我需要的所有信息。我还需要请求,以便记录有关用户、URL等的信息。
也许这要求太多了?
(我正在使用Django,但这似乎不是Django特定的东西)编辑:是的,它是。
我看到了这个Python error logging,它说要编写自己的sys.excepthook版本。当出现异常时,会自动调用此函数。我尝试过这样做,但即使我将解决方案复制粘贴到views.py中并引发错误,也没有调用my_excepthook。无论如何,它也无法获取我需要的所有信息。我还需要请求,以便记录有关用户、URL等的信息。
也许这要求太多了?
(我正在使用Django,但这似乎不是Django特定的东西)编辑:是的,它是。
sys.excepthook
仅在未处理的异常或由其处理程序重新引发的异常中调用,这可能是您尝试时似乎无法正常工作的原因。它所拥有的大部分信息只是作为参数传递的内容。您可以将其他信息存储在某个地方,并让您的版本在那里查找它。 - martineau