因此,在进行开发时,我只需将settings.DEBUG
设置为True
即可,如果出现错误,我可以看到它的格式很好,具有良好的堆栈跟踪和请求信息.
但在这种生产网站上,我宁愿使用DEBUG=False
,并向访问者展示一些标准错误500页面,其中包含我目前正在修复此错误的信息;)
对于Django-site,您会推荐哪些日志(log)记录解决方案来满足这些简单的需求?我将应用程序作为fcgi
台服务器运行,并使用Apache web服务器作为前端(尽管我考虑使用lighttpd).
因此,在进行开发时,我只需将settings.DEBUG
设置为True
即可,如果出现错误,我可以看到它的格式很好,具有良好的堆栈跟踪和请求信息.
但在这种生产网站上,我宁愿使用DEBUG=False
,并向访问者展示一些标准错误500页面,其中包含我目前正在修复此错误的信息;)
对于Django-site,您会推荐哪些日志(log)记录解决方案来满足这些简单的需求?我将应用程序作为fcgi
台服务器运行,并使用Apache web服务器作为前端(尽管我考虑使用lighttpd).
当设置为DEBUG = False
时,Django会自动向ADMINS
设置中列出的每个人邮寄错误的完整回溯,这几乎是免费的.如果您想要更细粒度的控制,您可以编写一个中间件类并将其添加到您的设置中,该中间件类定义了一个名为process_exception()
的方法,该方法可以访问引发的异常:
http://docs.djangoproject.com/en/dev/topics/http/middleware/#process-exception个
然后,您的process_exception()
方法可以执行您想要的任何类型的日志(log)记录:写入控制台、写入文件等.
编辑:虽然用处不大,但您也可以监听got_request_exception
信号,在请求处理过程中遇到异常时会发送该信号:
http://docs.djangoproject.com/en/dev/ref/signals/#got-request-exception个
但是,这确实让您可以访问Exception对象,因此中间件方法更容易使用.