当我附加 --traceback --verbosity 2
时,Django 的 runserver
命令不输出堆栈跟踪:
➫ 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
当有 500
时,我是否可以添加其他命令行开关或日志记录配置以使 runserver
打印堆栈跟踪?
最佳答案
同意这很方便,尤其是对于以 MVVM 为中心的应用程序开发(例如 Angular/Ember 前端)。这在其他人测试前端时也很有帮助。
正如您所提到的,这不是由 DEBUG=True
提供的。您可以在运行 ./manage.py runserver
时添加堆栈跟踪,方法是将以下内容添加到 settings.py 文件中:
LOGGING = {
'version': 1,
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
},
},
'loggers': {
'django.request': {
'handlers': ['console'],
'propagate': True,
'level': 'DEBUG',
},
},
}
此语法来自 Django 文档 Configuring Logging并且可以进一步修改以增加或减少控制台日志记录的数量。
另请注意,5XX 响应作为错误消息引发,4XX 响应作为警告消息引发。
关于python - 来自 manage.py runserver 的堆栈跟踪没有出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17833195/