因此,在进行开发时,我只需将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对象,因此中间件方法更容易使用.

Django相关问答推荐

Django-Values()并按月分组

""关系"core_Boundary_summary的列user_id中的空值"违反了非空约束|失败行包含(2,title,string,null)

Django为不同应用程序发出信号

无法将关键字average_rating解析为字段

没有与给定查询匹配的监视列表

如何在Django REST框架中实现ForeignKey搜索

为什么 Django 在错误的目录中寻找模板?

在 Serverless + Lambda + API Gateway HTTP API 上运行的 Django 应用程序正在重写链接以使用默认前缀

Django `UniqueConstraint` 异常处理方式与 'unique=True' 相同

设置 SECURE_HSTS_SECONDS 可以不可逆转地 destruct 您的网站?

Django 模板:翻译带有 HTML 的文本块的最佳实践

Django 表单有 Select 但也有自由文本选项?

Django 视图 - 首先从调用应用程序的目录加载模板

在 Django 管理屏幕中删除添加另一个

在 django 模板中访问元组

Django:如何使用动态(非模型)数据预填充 FormView?

如何创建一个在复选框右侧显示复选框标签的 Django 表单?

Django 什么是反向关系?

将 Django Rest Framework 与序列化程序一起使用时出现 AttributeError

Django 在视图之间传递数据