来自manage.py runserver的堆栈跟踪未显示

时间:2013-07-24 11:50:32

标签: python django

当我追加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打印堆栈跟踪?

1 个答案:

答案 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消息引发。