当我追加runserver
时,Django的--traceback --verbosity 2
命令不输出堆栈跟踪:
➫ python manage.py runserver --traceback --verbosity 2
Validating models...
0 errors found
July 24, 2013 - 11:45:12
Django version 1.5.1, using settings 'base.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[24/Jul/2013 11:45:27] "POST /login/get_associations/ HTTP/1.0" 500 13220
我是否可以添加其他命令行开关或日志记录配置,以便在runserver
时让500
打印堆栈跟踪?
答案 0 :(得分:30)
同意这很方便,特别是对于以MVVM为中心的应用程序开发(例如Angular / Ember前端)。当其他人正在测试前端时,这也很有用。
正如您所提到的,DEBUG=True
并未提供此信息。通过将以下内容添加到 settings.py 文件,您可以在运行./manage.py runserver
时添加堆栈跟踪:
LOGGING = {
'version': 1,
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
},
},
'loggers': {
'django.request': {
'handlers': ['console'],
'propagate': True,
'level': 'DEBUG',
},
},
}
此语法来自Django文档Configuring Logging,可以进一步修改以增加或减少控制台日志记录的数量。
另请注意, 5XX 响应将作为ERROR消息引发,而 4XX 响应将作为WARNING消息引发。