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

使用Zappa部署至AWS Lambda时django.server日志未在CloudWatch显示

解决Django+Zappa部署Lambda后CloudWatch日志不显示的问题

1. 修正DEBUG模式适配的日志处理器

Lambda生产环境中DEBUG通常设为False,你的console处理器添加了require_debug_true过滤器,这会导致该处理器在Lambda环境下完全失效。可以直接调整过滤器配置,让它同时兼容本地和生产环境:

"handlers": {
    "console": {
        "level": "INFO",
        "filters": [],  # 移除DEBUG相关过滤器,适配所有环境
        "class": "logging.StreamHandler",
    },
    "django.server": {
        "level": "INFO",
        "class": "logging.StreamHandler",
        "formatter": "django.server",
    },
},
"loggers": {
    "django": {
        "handlers": ["console"],
        "level": "INFO",
    },
}

2. 排查自定义UserIdFilter的问题

自定义过滤器如果在Lambda环境抛出未捕获异常,会直接中断日志流程。检查过滤器实现,务必增加容错处理:

class UserIdFilter(logging.Filter):
    def filter(self, record):
        # 避免无request或用户对象时崩溃
        try:
            request = getattr(record, 'request', None)
            if request and hasattr(request, 'user') and request.user.is_authenticated:
                record.user_id = request.user.id
            else:
                record.user_id = 'anonymous'
        except Exception:
            record.user_id = 'unknown'
        return True

同时确认<path_to>在部署后的Lambda环境中路径正确,没有本地开发的路径依赖。

3. 明确日志输出流

Lambda会自动捕获stdout和stderr,可以给日志处理器明确指定输出流,确保日志能被CloudWatch捕获:

import sys

"handlers": {
    "django.server": {
        "level": "INFO",
        "class": "logging.StreamHandler",
        "formatter": "django.server",
        "stream": sys.stdout,  # 强制输出到标准输出
    },
},

4. 测试日志触发与传播

在视图中手动触发一条django.server日志,验证是否能输出:

import logging
logger = logging.getLogger('django.server')
logger.info('测试日志:django.server')

如果仍无输出,可以暂时将django.server的propagate改为True,让日志传播到django logger,通过已修复的console处理器输出。

5. 检查Zappa配置

确保zappa_settings.json中日志相关配置正确:

{
    "production": {
        "log_level": "INFO",
        "capture_request_logs": true
    }
}

内容的提问来源于stack exchange,提问作者sajith.vim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 19:13:23