summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorCarl Meyer <carl@oddbird.net>2011-09-16 16:41:38 +0000
committerCarl Meyer <carl@oddbird.net>2011-09-16 16:41:38 +0000
commit343004c4de332bfec09e8a57de775a46fecb18f9 (patch)
tree728d54b838e45651609432a00b0f84a07f9649bf /django
parentf9dad46d3665214ac80af06371fae10c55605086 (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__.py9
-rw-r--r--django/conf/global_settings.py4
-rw-r--r--django/conf/project_template/settings.py3
-rw-r--r--django/utils/log.py7
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