为什么Django升级到v2.2后会发送重复的错误消息?

时间:2019-07-03 18:43:49

标签: python django python-3.x error-handling

从版本Django 2.2升级到1.8后,我的应用开始收到重复的错误消息。现在,无论类型如何,每个错误都会两次发送到我的ADMINS电子邮件中。

我正在Heroku上运行我的应用程序,并尝试了他们的支持,但他们确定这与我的应用程序有关。我无法在线或在stackoverflow上找到类似的问题。

我的日志配置

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse'
        }
    },
    'handlers': {
        'mail_admins': {
            'level': 'ERROR',
            'filters': ['require_debug_false'],
            'class': 'django.utils.log.AdminEmailHandler'
        }
    },
    'loggers': {
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': True,
        },
    }
}

我的版本

Django==2.2.2
PyJWT==1.4.0
Pygments==2.0.2
bpython==0.13
django-braces==1.4.0
django-gulp==4.1.0
django-debug-toolbar==1.9
django-model-utils==2.0.3
django-heroku-memcacheify==1.0.0
django-pylibmc==0.6.1
django-mptt==0.9.1
django_storages==1.7.1
logutils==0.3.3
oauthlib==1.0.3
python-openid==2.2.5
social-auth-app-django==3.1.0
social-auth-core==3.2.0
google-api-python-client==1.7.4
geopy==1.17.0
requests==2.9.1
requests-oauthlib==0.6.1
six==1.10.0
sqlparse==0.3.0
django-redis==4.10.0
redis==2.10.6
kombu==4.3.0
hiredis
sparkpost==1.3.6
pillow==6.0.0
python-twitter==2.2
python-wordpress-xmlrpc==2.3
python-instagram==1.3.2
celery==4.2.0
boto==2.49.0
gevent==1.4.0
waitress==1.0.2
unidecode==0.4.21
djangorestframework==3.9.4
numpy==1.15.0
pandas==0.23.4
dj-database-url==0.4.2
gunicorn==18.0
psycopg2==2.8.2
uwsgi==2.0.15
newrelic

1 个答案:

答案 0 :(得分:0)

感谢@gregory建议在我的设置中加入LOGGING_CONFIG = None。根据{{​​3}}:

  

这将禁用Django默认日志记录的配置过程。

最终工作代码:

import logging.config

LOGGING_CONFIG = None

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse'
        }
    },
    'handlers': {
        'mail_admins': {
            'level': 'ERROR',
            'filters': ['require_debug_false'],
            'class': 'django.utils.log.AdminEmailHandler'
        }
    },
    'loggers': {
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': True,
        },
    }
}

logging.config.dictConfig(LOGGING)