1

我收到一条错误消息发送到我的管理员电子邮件地址:

ADMIN = ['admin.error.email.here@domain.com'] email address.

此错误消息以大约每分钟两个的恒定速率出现。

我想停止发送到我的管理员电子邮件的所有错误消息,这些错误消息是 HTTP_HOST 错误,但同时仍会收到 500 条错误消息。我查看了文档,找不到任何帮助。我在 Stack Overflow 上搜索,只发现将 nginx 80 端口服务器配置文件更改为包含头错误为 444 错误,从而绕过 500 错误报告。然而,这并没有奏效。

是否有任何setting.py变量可以排除某些错误?时间至关重要——就像我说的那样,每分钟有 2 封该死的电子邮件来自某个拼命抓取数据的混蛋。这不是安全风险,但它很烦人,并且消耗了我的电子邮件主机的每月电子邮件限制。

谢谢你的帮助。

4

1 回答 1

0

首先,我还没有测试这个特定的样本,但我在类似情况下的方法是为您的日志记录编写一个自定义过滤器。

为此首先编写一个自定义过滤器:

import logging 

class NoAnnoyFilter(logging.Filter):
    def filter(self, record):
        status_code = getattr(record, 'status_code', None)
        return status_code != 500

然后将其添加到您的日志记录配置中settings.py

DEFAULT_LOGGING = {
    ...
    'filters': {
        'no_annoy': {
            '()': 'myproject.utils.NoAnnoyFilter',
        },
    },
    ...
    'handlers': {
        'mail_admins': {
            'level': 'ERROR',
            'filters': ['no_annoy'],
            'class': 'django.utils.log.AdminEmailHandler'
        },
        ...
    },
}

您可以在 Django 代码本身中看到一些实际示例:https ://github.com/django/django/blob/6709ea4ae91b906742506ac0c42a3a272991001f/django/utils/log.py

于 2017-01-10T22:39:53.967 回答