From ff72e25f74836c3adf8b35806afab1a147117094 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Sun, 26 Apr 2020 11:04:00 +0200 Subject: [PATCH 4/5] logger: prevent RequestContextFilter multiple execution (#29149) --- debian/debian_config_common.py | 3 ++- hobo/logger.py | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/debian/debian_config_common.py b/debian/debian_config_common.py index 16d2c8c..5c71354 100644 --- a/debian/debian_config_common.py +++ b/debian/debian_config_common.py @@ -90,6 +90,7 @@ LOGGING = { 'address': '/dev/log', 'class': 'logging.handlers.SysLogHandler', 'formatter': 'syslog', + 'filters': ['request_context'], }, 'syslog_no_filter': { 'level': 'INFO', @@ -113,7 +114,7 @@ LOGGING = { 'when': 'midnight', 'backupCount': 1, 'interval': 1, - 'filters': ['debug_log'], + 'filters': ['request_context', 'debug_log'], } }, 'loggers': { diff --git a/hobo/logger.py b/hobo/logger.py index f139301..ea7fe43 100644 --- a/hobo/logger.py +++ b/hobo/logger.py @@ -52,6 +52,9 @@ class RequestContextFilter(logging.Filter): Inspired by django-log-request-id ''' + # prevent multiple execution on the same record + if getattr(record, 'request_context', False): + return True # lookup request from record then StoreRequestMiddleware if not hasattr(record, 'request'): @@ -101,6 +104,7 @@ class RequestContextFilter(logging.Filter): record.user = record.user_email = user.email if getattr(user, 'username', None): record.user = record.user_name = user.username + record.request_context = True return True -- 2.28.0