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

Django3+Nginx+Gunicorn+Supervisor生产环境无法记录500错误日志

问题排查与解决方案

核心问题点

    1. Django日志配置缺失必要规则:仅配置了django根日志,未覆盖处理请求异常的django.request日志器,也没有兜底的根日志器捕获所有未处理异常,同时缺失格式化配置无法输出完整回溯栈。
    1. 权限问题:运行gunicorn的用户和日志目录所属用户可能不匹配,导致FileHandler无法写入日志文件。
    1. 服务运行用户冲突:supervisor配置的运行用户为root,但是gunicorn启动时切换为my_user,容易产生权限混乱。

调整步骤

1. 修正Django settings.py的LOGGING配置

替换原有LOGGING配置为以下内容:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'verbose': {
            'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}\n{exc_info}',
            'style': '{',
        },
    },
    'handlers': {
        'file': {
            'level': 'INFO',
            'class': 'logging.FileHandler',
            'filename': os.path.join(BASE_DIR, 'logs/django.log'),
            'formatter': 'verbose',
        },
        'console': {
            'class': 'logging.StreamHandler',
            'formatter': 'verbose',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console', 'file'],
            'level': os.getenv('DJANGO_LOG_LEVEL', 'ERROR'),
            'propagate': True,
        },
        # 专门处理请求异常的日志器,500错误会被这个捕获
        'django.request': {
            'handlers': ['console', 'file'],
            'level': 'ERROR',
            'propagate': True,
        },
        # 根日志器兜底,捕获所有未匹配的异常
        '': {
            'handlers': ['console', 'file'],
            'level': 'ERROR',
        }
    },
}

2. 修正日志目录权限

执行以下命令确保日志目录权限正确:

mkdir -p /home/my_user/rpg-django/logs
chown -R my_user:my_user /home/my_user/rpg-django/logs

3. 修正supervisor配置

修改/etc/supervisor/conf.d/rpg-django.conf中的user配置,和gunicorn运行用户保持一致:

user=my_user

4. 重启所有服务生效

执行以下命令重启服务:

supervisorctl reread
supervisorctl update
supervisorctl restart RPG-DJANGO

调整完成后再次访问测试视图,即可在logs/django.log或者logs/prod_gunicorn.log中看到完整的500错误回溯信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:54:02