python - 来自 manage.py runserver 的堆栈跟踪没有出现

标签 python django

当我附加 --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/

相关文章:

python - 使用 asyncio 协同程序进行方法链接

Python3 - 通过网络套接字诅咒输入/输出?

python - 这是不好的做法吗 : assigning a return variable

python - 在 TensorFlow 中对数组进行排序

python - 如何将多维数组写入文本文件?

python - 如何以编程方式获取 Django 中模型的管理器实例

django - 如何在模板标签中获取当前用户?

Django 模型编号字段

django - Docker 用户访问容器中的文件夹时权限被拒绝

django - 如何在 nginx + django + kubernetes 中提供静态内容?