如何在django站点上记录服务器错误

问题:

所以,当玩这个开发我可以设置settings.DEBUGTrue,如果发生错误,我可以看到它很好地格式化,良好的堆栈跟踪和请求信息。
但是在生产站点上,我宁愿使用DEBUG=False并向访问者显示一些标准错误500页面,其中包含我正在修复此错误的信息;)
同时我想有一些方法将所有这些信息(堆栈跟踪和请求信息)记录到我的服务器上的文件中 – 所以我可以将其输出到我的控制台,看错误滚动,将日志发送给我每一小时或这样的东西。
你会建议一个django站点采用哪些记录解决方案,这将满足这些简单的要求?我有应用程序作为fcgi服务器运行,我使用apache Web服务器作为前端(尽管想到去lighttpd)。

回答:

那么,当DEBUG = False时,Django会自动向ADMINS设置中列出的每个人自动发送任何错误的完整回溯,这样可以让您免费获得通知。如果你想要更精细的控制,你可以编写和添加一个中间件类,它定义了一个名为process_exception()的方法,它可以访问引发的异常:
 http://docs.djangoproject.com/en/dev/topics/http/middleware/#process-exception
您的process_exception()方法可以执行任何类型的日志记录:写入控制台,写入文件等。
编辑:虽然这不太有用,但您也可以监听got_request_exception信号,当请求处理中遇到异常时,将发送该信号:
 http://docs.djangoproject.com/en/dev/ref/signals/#got-request-exception
这样not可以让您访问异常对象,因此中间件方法更容易使用。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: How do you log server errors on django sites

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

17 − 7 =