我做了一些搜索,但我想知道是否有人有一个日志配置的片段,以便让Django在请求期间遇到错误时将堆栈跟踪输出到stdout(所以我可以在终端窗口中看到它).这是专门用于本地开发/调试的,主要用于我执行AJAX发布请求时,我必须查看Firebug中的HTML以确定错误发生在哪一行.
Mik*_*lan 29
另一种方法是使用LOGGING.具体来说,./manage.py runserver通过将以下内容添加到settings.py文件中,您可以在运行时获得堆栈跟踪:
LOGGING = {
'version': 1,
'handlers': {
'console':{
'level':'DEBUG',
'class':'logging.StreamHandler',
},
},
'loggers': {
'django.request': {
'handlers':['console'],
'propagate': True,
'level':'DEBUG',
}
},
}
Run Code Online (Sandbox Code Playgroud)
此语法来自Django文档配置日志记录,可以进一步修改以增加或减少控制台日志记录的数量.
此外,当ERROR消息和4XX响应被引发为WARNING消息时,将引发5XX响应.
需要注意的是这个问题的答案-有2013重复这里.
Dan*_*een 21
您可以创建一个中间件来执行此操作.这是我用于项目的修改后的片段:
class ExceptionLoggingMiddleware(object):
def process_exception(self, request, exception):
import traceback
print traceback.format_exc()
Run Code Online (Sandbox Code Playgroud)
将此处理程序放在Django设置的中间件部分中.
Ili*_*ski 16
奇怪的是没人提到这个DEBUG_PROPAGATE_EXCEPTIONS设置.它不是用于生产,而是在测试/调试环境中非常容易使用.只需添加到settings.py:
DEBUG_PROPAGATE_EXCEPTIONS = True
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18506 次 |
| 最近记录: |