You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django设置Debug=False时出现500错误,无控制台输出问题排查

搞定Django Debug=False时的500错误日志问题

我之前也碰到过这个情况——Debug切到False后,哪怕用manage.py runserver跑,控制台啥错误信息都没有,排查起来特别费劲。结合经验,给你几个实用的方法来拿到详细错误日志:

1. 先找默认生成的日志文件

Django在Debug=False模式下,默认会把错误日志写到项目根目录的django.log文件里。你直接打开这个文件看看,大概率能找到500错误的详细堆栈信息。

2. 自定义日志配置,让错误输出到控制台+文件

如果默认日志没找到,或者你想直接在控制台看到错误,建议在settings.py里加一段日志配置。这样不管是用manage.py还是gunicorn运行,都能精准捕获错误:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        # 把错误写到文件
        'error_file': {
            'level': 'ERROR',
            'class': 'logging.FileHandler',
            'filename': './logs/django_errors.log',  # 可以改成你喜欢的路径,记得先建logs文件夹
        },
        # 同时在控制台输出错误
        'console': {
            'level': 'ERROR',
            'class': 'logging.StreamHandler',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['error_file', 'console'],
            'level': 'ERROR',
            'propagate': True,
        },
    },
}

配置完之后,重启manage.py runserver,再触发500错误,控制台就会打印详细错误了,同时文件里也会备份一份。

3. 针对gunicorn的日志排查

你提到用gunicorn也会500,启动gunicorn的时候可以直接指定错误日志文件,这样能单独捕获gunicorn层面的错误:

gunicorn itapp.wsgi:application --error-logfile ./logs/gunicorn_errors.log

打开这个日志文件,里面可能会有Django没捕获到的服务器层面错误。

额外提醒

Debug=False时,还有个常见坑是静态文件配置问题——如果没正确设置STATIC_ROOT或者没跑python manage.py collectstatic,也可能触发500错误。你可以先确认这块配置没问题,排除这个干扰项。

内容的提问来源于stack exchange,提问作者AlexW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:12:57