summaryrefslogtreecommitdiff
path: root/django/utils/log.py
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2012-09-24 22:30:38 +0200
committerClaude Paroz <claude@2xlibre.net>2012-09-29 22:56:18 +0200
commita014ddfef2f606471f25c756d97b3b50fcbd9e91 (patch)
tree387712a6b25cba824d7797f9214a41f374f83cea /django/utils/log.py
parent15202baace1453e7576806f13d137ae930de6dcb (diff)
Combined Django DEFAULT_LOGGING with user LOGGING config
Refs #18993.
Diffstat (limited to 'django/utils/log.py')
-rw-r--r--django/utils/log.py39
1 files changed, 33 insertions, 6 deletions
diff --git a/django/utils/log.py b/django/utils/log.py
index df2089f924..c111512fe8 100644
--- a/django/utils/log.py
+++ b/django/utils/log.py
@@ -5,6 +5,7 @@ from django.conf import settings
from django.core import mail
from django.views.debug import ExceptionReporter, get_exception_reporter_filter
+
# Make sure a NullHandler is available
# This was added in Python 2.7/3.2
try:
@@ -23,12 +24,38 @@ except ImportError:
getLogger = logging.getLogger
-# Ensure the creation of the Django logger
-# with a null handler. This ensures we don't get any
-# 'No handlers could be found for logger "django"' messages
-logger = getLogger('django')
-if not logger.handlers:
- logger.addHandler(NullHandler())
+# Default logging for Django. This sends an email to
+# the site admins on every HTTP 500 error. All other log
+# records are sent to the bit bucket.
+DEFAULT_LOGGING = {
+ 'version': 1,
+ 'disable_existing_loggers': False,
+ 'filters': {
+ 'require_debug_false': {
+ '()': 'django.utils.log.RequireDebugFalse',
+ }
+ },
+ 'handlers': {
+ 'null': {
+ 'class': 'django.utils.log.NullHandler',
+ },
+ 'mail_admins': {
+ 'level': 'ERROR',
+ 'filters': ['require_debug_false'],
+ 'class': 'django.utils.log.AdminEmailHandler'
+ }
+ },
+ 'loggers': {
+ 'django': {
+ 'handlers': ['null'],
+ },
+ 'django.request': {
+ 'handlers': ['mail_admins'],
+ 'level': 'ERROR',
+ 'propagate': True,
+ },
+ }
+}
class AdminEmailHandler(logging.Handler):