diff options
| author | django-bot <ops@djangoproject.com> | 2022-02-03 20:24:19 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2022-02-07 20:37:05 +0100 |
| commit | 9c19aff7c7561e3a82978a272ecdaad40dda5c00 (patch) | |
| tree | f0506b668a013d0063e5fba3dbf4863b466713ba /django/utils/log.py | |
| parent | f68fa8b45dfac545cfc4111d4e52804c86db68d3 (diff) | |
Refs #33476 -- Reformatted code with Black.
Diffstat (limited to 'django/utils/log.py')
| -rw-r--r-- | django/utils/log.py | 137 |
1 files changed, 77 insertions, 60 deletions
diff --git a/django/utils/log.py b/django/utils/log.py index 5a5decd531..fd0cc1bdc1 100644 --- a/django/utils/log.py +++ b/django/utils/log.py @@ -8,7 +8,7 @@ from django.core.mail import get_connection from django.core.management.color import color_style from django.utils.module_loading import import_string -request_logger = logging.getLogger('django.request') +request_logger = logging.getLogger("django.request") # Default logging for Django. This sends an email to the site admins on every # HTTP 500 error. Depending on DEBUG, all other log records are either sent to @@ -16,51 +16,51 @@ request_logger = logging.getLogger('django.request') # require_debug_true filter. This configuration is quoted in # docs/ref/logging.txt; please amend it there if edited here. DEFAULT_LOGGING = { - 'version': 1, - 'disable_existing_loggers': False, - 'filters': { - 'require_debug_false': { - '()': 'django.utils.log.RequireDebugFalse', + "version": 1, + "disable_existing_loggers": False, + "filters": { + "require_debug_false": { + "()": "django.utils.log.RequireDebugFalse", }, - 'require_debug_true': { - '()': 'django.utils.log.RequireDebugTrue', + "require_debug_true": { + "()": "django.utils.log.RequireDebugTrue", }, }, - 'formatters': { - 'django.server': { - '()': 'django.utils.log.ServerFormatter', - 'format': '[{server_time}] {message}', - 'style': '{', + "formatters": { + "django.server": { + "()": "django.utils.log.ServerFormatter", + "format": "[{server_time}] {message}", + "style": "{", } }, - 'handlers': { - 'console': { - 'level': 'INFO', - 'filters': ['require_debug_true'], - 'class': 'logging.StreamHandler', + "handlers": { + "console": { + "level": "INFO", + "filters": ["require_debug_true"], + "class": "logging.StreamHandler", }, - 'django.server': { - 'level': 'INFO', - 'class': 'logging.StreamHandler', - 'formatter': 'django.server', + "django.server": { + "level": "INFO", + "class": "logging.StreamHandler", + "formatter": "django.server", + }, + "mail_admins": { + "level": "ERROR", + "filters": ["require_debug_false"], + "class": "django.utils.log.AdminEmailHandler", }, - 'mail_admins': { - 'level': 'ERROR', - 'filters': ['require_debug_false'], - 'class': 'django.utils.log.AdminEmailHandler' - } }, - 'loggers': { - 'django': { - 'handlers': ['console', 'mail_admins'], - 'level': 'INFO', + "loggers": { + "django": { + "handlers": ["console", "mail_admins"], + "level": "INFO", }, - 'django.server': { - 'handlers': ['django.server'], - 'level': 'INFO', - 'propagate': False, + "django.server": { + "handlers": ["django.server"], + "level": "INFO", + "propagate": False, }, - } + }, } @@ -87,22 +87,24 @@ class AdminEmailHandler(logging.Handler): super().__init__() self.include_html = include_html self.email_backend = email_backend - self.reporter_class = import_string(reporter_class or settings.DEFAULT_EXCEPTION_REPORTER) + self.reporter_class = import_string( + reporter_class or settings.DEFAULT_EXCEPTION_REPORTER + ) def emit(self, record): try: request = record.request - subject = '%s (%s IP): %s' % ( + subject = "%s (%s IP): %s" % ( record.levelname, - ('internal' if request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS - else 'EXTERNAL'), - record.getMessage() + ( + "internal" + if request.META.get("REMOTE_ADDR") in settings.INTERNAL_IPS + else "EXTERNAL" + ), + record.getMessage(), ) except Exception: - subject = '%s: %s' % ( - record.levelname, - record.getMessage() - ) + subject = "%s: %s" % (record.levelname, record.getMessage()) request = None subject = self.format_subject(subject) @@ -118,12 +120,17 @@ class AdminEmailHandler(logging.Handler): exc_info = (None, record.getMessage(), None) reporter = self.reporter_class(request, is_email=True, *exc_info) - message = "%s\n\n%s" % (self.format(no_exc_record), reporter.get_traceback_text()) + message = "%s\n\n%s" % ( + self.format(no_exc_record), + reporter.get_traceback_text(), + ) html_message = reporter.get_traceback_html() if self.include_html else None self.send_mail(subject, message, fail_silently=True, html_message=html_message) def send_mail(self, subject, message, *args, **kwargs): - mail.mail_admins(subject, message, *args, connection=self.connection(), **kwargs) + mail.mail_admins( + subject, message, *args, connection=self.connection(), **kwargs + ) def connection(self): return get_connection(backend=self.email_backend, fail_silently=True) @@ -132,7 +139,7 @@ class AdminEmailHandler(logging.Handler): """ Escape CR and LF characters. """ - return subject.replace('\n', '\\n').replace('\r', '\\r') + return subject.replace("\n", "\\n").replace("\r", "\\r") class CallbackFilter(logging.Filter): @@ -141,6 +148,7 @@ class CallbackFilter(logging.Filter): takes the record-to-be-logged as its only parameter) to decide whether to log a record. """ + def __init__(self, callback): self.callback = callback @@ -161,7 +169,7 @@ class RequireDebugTrue(logging.Filter): class ServerFormatter(logging.Formatter): - default_time_format = '%d/%b/%Y %H:%M:%S' + default_time_format = "%d/%b/%Y %H:%M:%S" def __init__(self, *args, **kwargs): self.style = color_style() @@ -169,7 +177,7 @@ class ServerFormatter(logging.Formatter): def format(self, record): msg = record.msg - status_code = getattr(record, 'status_code', None) + status_code = getattr(record, "status_code", None) if status_code: if 200 <= status_code < 300: @@ -189,17 +197,25 @@ class ServerFormatter(logging.Formatter): # Any 5XX, or any other status code msg = self.style.HTTP_SERVER_ERROR(msg) - if self.uses_server_time() and not hasattr(record, 'server_time'): + if self.uses_server_time() and not hasattr(record, "server_time"): record.server_time = self.formatTime(record, self.datefmt) record.msg = msg return super().format(record) def uses_server_time(self): - return self._fmt.find('{server_time}') >= 0 + return self._fmt.find("{server_time}") >= 0 -def log_response(message, *args, response=None, request=None, logger=request_logger, level=None, exception=None): +def log_response( + message, + *args, + response=None, + request=None, + logger=request_logger, + level=None, + exception=None, +): """ Log errors based on HttpResponse status. @@ -211,22 +227,23 @@ def log_response(message, *args, response=None, request=None, logger=request_log # the same response can be received in some cases, e.g., when the # response is the result of an exception and is logged when the exception # is caught, to record the exception. - if getattr(response, '_has_been_logged', False): + if getattr(response, "_has_been_logged", False): return if level is None: if response.status_code >= 500: - level = 'error' + level = "error" elif response.status_code >= 400: - level = 'warning' + level = "warning" else: - level = 'info' + level = "info" getattr(logger, level)( - message, *args, + message, + *args, extra={ - 'status_code': response.status_code, - 'request': request, + "status_code": response.status_code, + "request": request, }, exc_info=exception, ) |
