【发布时间】:2010-10-15 23:58:15
【问题描述】:
在调试模式下运行 runserver 时,如何让 Django 1.0 将 all 错误写入控制台或日志文件?
我已尝试使用带有 process_exception 函数的中间件类,如该问题的已接受答案中所述:
How do you log server errors on django sites
process_exception 函数会针对某些异常调用(例如:views.py 中的 assert(False)),但不会针对 ImportErrors 等其他错误调用 process_exception(例如:在 urs.py 中导入 thisclassdoesnotexist)。我是 Django/Python 的新手。这是因为运行时错误和编译时错误之间存在一些区别吗?但是,如果它是编译时错误,我希望 runserver 会抱怨,而事实并非如此。
我看过 Simon Willison 关于 Django 调试 (http://simonwillison.net/2008/May/22/debugging/) 的精彩演示,但我没有看到适合我的选项。
如果它是相关的,我正在编写一个 Facebook 应用程序,Facebook 用他们自己的消息来掩盖 HTTP 500 错误,而不是显示 Django 信息丰富的 500 页面。所以我需要一种将所有类型的错误写入控制台或文件的方法。
编辑: 我想我的期望是如果 Django 可以在 urls.py 中有错误导入 (ImportError) 时返回包含大量详细信息的 500 错误页面,它应该能够编写控制台或文件的相同细节,而无需向代码添加任何额外的异常处理。我从未见过围绕 import 语句的异常处理。
谢谢, 杰夫
【问题讨论】: