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

如何在Django日志配置中排除404错误的邮件通知?

解决Django日志中404错误邮件通知过多的问题

要过滤掉爬虫、垃圾请求导致的404错误邮件,你可以直接利用Django内置的Ignore404过滤器修改日志配置,具体调整如下:

1. 添加忽略404的过滤器

在原有filters配置块中,新增一个专门过滤404错误的规则:

'ignore_404': {
    '()': 'django.utils.log.Ignore404',
}

2. 给邮件处理器绑定该过滤器

修改mail_admins处理器的filters列表,把新增的ignore_404加入其中,这样404相关的日志就不会触发邮件通知了:

'mail_admins': {
    'level': 'WARNING',
    'filters': ['require_debug_false', 'ignore_404'],
    'class': 'django.utils.log.AdminEmailHandler',
    'include_html': True,
},

修改后的完整日志配置

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse'
        },
        # 新增忽略404的过滤器
        'ignore_404': {
            '()': 'django.utils.log.Ignore404',
        }
    },

    'formatters': {
        'verbose': {
            'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}',
            'style': '{',
        },
        'simple': {
            'format': '{levelname} {message}',
            'style': '{',
        },
    },

    'handlers': {
        'console': {
            'level': 'INFO',
            'class': 'logging.StreamHandler',
        },

        'mail_admins': {
            'level': 'WARNING',
            # 新增ignore_404过滤器
            'filters': ['require_debug_false', 'ignore_404'],
            'class': 'django.utils.log.AdminEmailHandler',
            'include_html': True,
        },
    },

    'loggers': {
        '': {
            'handlers': ['console', 'mail_admins'],
            'level': 'DEBUG',
            'propagate': False,
        },
    }
}

调整完成后,只有非404的WARNING及以上级别错误(比如服务器内部错误、权限问题等)会触发邮件通知,爬虫导致的404日志会被自动过滤,不会再发送冗余邮件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 17:20:58