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

Django日志配置报错:ValueError: 无法配置gunicorn处理器

问题修复:Django日志配置报错ValueError: Unable to configure handler 'gunicorn'

报错根源是gunicorn日志处理器引用了未定义的格式化器verbose——你的formatters字典里只定义了main_formatter,没有名为verbose的格式化规则,导致日志系统无法匹配对应配置。

修复方案(二选一)

方案1:复用已有的main_formatter

修改gunicorn处理器的formatter字段,指向已定义的main_formatter:

LOGGING = {
    "version": 1,
    "disable_existing_loggers": False,
    "formatters": {
        "main_formatter": {
            "format": "{asctime}-{levelname}-{module}-{funcName}-{message}",
            "style": "{",
        },
    },
    "handlers": {
        "warnfile": {
            "level": "WARNING",
            "class": "logging.FileHandler",
            "filename": BASE_DIR / "warning.log",
        },
        "errorfile": {
            "level": "ERROR",
            "class": "logging.FileHandler",
            "filename": BASE_DIR / "error.log",
        },
        "gunicorn": {
            "level": "DEBUG",
            "class": "logging.handlers.RotatingFileHandler",
            "formatter": "main_formatter",  # 修改为已存在的格式化器
            "filename": BASE_DIR / "gunicorn.log",
            "maxBytes": 1024 * 1024 * 25,  # 修正注释:实际为25MB,原注释写100MB有误
        },
    },
    "loggers": {
        "": {
            "handlers": ["warnfile", "errorfile"],
            "level": "WARNING",
            "propagate": True,
        },
        "gunicorn.errors": {
            "level": "DEBUG",
            "handlers": ["gunicorn"],
            "propagate": True,
        },
    },
}

方案2:新增verbose格式化器

如果需要为gunicorn日志单独设置格式,在formatters中添加verbose配置:

LOGGING = {
    "version": 1,
    "disable_existing_loggers": False,
    "formatters": {
        "main_formatter": {
            "format": "{asctime}-{levelname}-{module}-{funcName}-{message}",
            "style": "{",
        },
        # 新增verbose格式化器
        "verbose": {
            "format": "{asctime} [{levelname}] {name}: {message} (at {module}.{funcName})",
            "style": "{",
        },
    },
    "handlers": {
        "warnfile": {
            "level": "WARNING",
            "class": "logging.FileHandler",
            "filename": BASE_DIR / "warning.log",
        },
        "errorfile": {
            "level": "ERROR",
            "class": "logging.FileHandler",
            "filename": BASE_DIR / "error.log",
        },
        "gunicorn": {
            "level": "DEBUG",
            "class": "logging.handlers.RotatingFileHandler",
            "formatter": "verbose",  # 保持引用,现在已定义该格式化器
            "filename": BASE_DIR / "gunicorn.log",
            "maxBytes": 1024 * 1024 * 25,  # 修正注释:实际为25MB
        },
    },
    "loggers": {
        "": {
            "handlers": ["warnfile", "errorfile"],
            "level": "WARNING",
            "propagate": True,
        },
        "gunicorn.errors": {
            "level": "DEBUG",
            "handlers": ["gunicorn"],
            "propagate": True,
        },
    },
}

额外说明

  • 无需手动创建日志文件,logging模块会自动生成(前提是程序拥有目录写入权限)
  • 原配置中maxBytes的注释存在笔误,1024102425对应25MB,已在修复代码中修正

内容的提问来源于stack exchange,提问作者Kaiss B.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 17:15:45