diff options
| author | Carl Meyer <carl@oddbird.net> | 2011-09-16 16:41:38 +0000 |
|---|---|---|
| committer | Carl Meyer <carl@oddbird.net> | 2011-09-16 16:41:38 +0000 |
| commit | 343004c4de332bfec09e8a57de775a46fecb18f9 (patch) | |
| tree | 728d54b838e45651609432a00b0f84a07f9649bf /django | |
| parent | f9dad46d3665214ac80af06371fae10c55605086 (diff) | |
Fixed #16568 -- Added RequireDebugFalse filter to prevent sending 500 error emails when DEBUG is True in projects with no explicit LOGGING setting. Thanks to Andreas Pelme for report and patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16840 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django')
| -rw-r--r-- | django/conf/__init__.py | 9 | ||||
| -rw-r--r-- | django/conf/global_settings.py | 4 | ||||
| -rw-r--r-- | django/conf/project_template/settings.py | 3 | ||||
| -rw-r--r-- | django/utils/log.py | 7 |
4 files changed, 11 insertions, 12 deletions
diff --git a/django/conf/__init__.py b/django/conf/__init__.py index 4337bd4c11..3b829ce75b 100644 --- a/django/conf/__init__.py +++ b/django/conf/__init__.py @@ -199,13 +199,8 @@ def compat_patch_logging_config(logging_config): while filter_name in filters: filter_name = filter_name + "_" - def _callback(record): - from django.conf import settings - return not settings.DEBUG - filters[filter_name] = { - "()": "django.utils.log.CallbackFilter", - "callback": _callback - } + "()": "django.utils.log.RequireDebugFalse", + } logging_config["handlers"]["mail_admins"]["filters"] = [filter_name] diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py index 637b5f4d65..29c9812be5 100644 --- a/django/conf/global_settings.py +++ b/django/conf/global_settings.py @@ -514,13 +514,13 @@ LOGGING_CONFIG = 'django.utils.log.dictConfig' # The default logging configuration. This sends an email to # the site admins on every HTTP 500 error. All other log # records are sent to the bit bucket. + LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'filters': { 'require_debug_false': { - '()': 'django.utils.log.CallbackFilter', - 'callback': lambda r: not DEBUG + '()': 'django.utils.log.RequireDebugFalse', } }, 'handlers': { diff --git a/django/conf/project_template/settings.py b/django/conf/project_template/settings.py index 3a2243fbc6..b92c1163c3 100644 --- a/django/conf/project_template/settings.py +++ b/django/conf/project_template/settings.py @@ -128,8 +128,7 @@ LOGGING = { 'disable_existing_loggers': False, 'filters': { 'require_debug_false': { - '()': 'django.utils.log.CallbackFilter', - 'callback': lambda r: not DEBUG + '()': 'django.utils.log.RequireDebugFalse' } }, 'handlers': { diff --git a/django/utils/log.py b/django/utils/log.py index a8098fcd2a..8ce37f5309 100644 --- a/django/utils/log.py +++ b/django/utils/log.py @@ -30,6 +30,7 @@ logger = getLogger('django') if not logger.handlers: logger.addHandler(NullHandler()) + class AdminEmailHandler(logging.Handler): """An exception log handler that emails log entries to site admins. @@ -82,8 +83,12 @@ class CallbackFilter(logging.Filter): def __init__(self, callback): self.callback = callback - def filter(self, record): if self.callback(record): return 1 return 0 + + +class RequireDebugFalse(logging.Filter): + def filter(self, record): + return not settings.DEBUG |
