From 721dd3bc8adacb2ae471a68ba36ede0824394c91 Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Tue, 12 Mar 2019 13:52:11 -0400 Subject: [PATCH 1/3] Log current userid in all log messages REVMI-60 --- openedx/core/djangoapps/util/log_utils.py | 10 ++++++++++ openedx/core/lib/logsettings.py | 9 +++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 openedx/core/djangoapps/util/log_utils.py diff --git a/openedx/core/djangoapps/util/log_utils.py b/openedx/core/djangoapps/util/log_utils.py new file mode 100644 index 0000000000..c625c2c26e --- /dev/null +++ b/openedx/core/djangoapps/util/log_utils.py @@ -0,0 +1,10 @@ +from logging import Filter +from crum import get_current_user + +class UserIdFilter(Filter): + def filter(record): + user = get_current_user() + if user and user.pk: + record.userid = user.pk + else: + record.userid = None diff --git a/openedx/core/lib/logsettings.py b/openedx/core/lib/logsettings.py index b88973cfd4..aa40e15856 100644 --- a/openedx/core/lib/logsettings.py +++ b/openedx/core/lib/logsettings.py @@ -30,7 +30,7 @@ def get_logger_config(log_dir, hostname = platform.node().split(".")[0] syslog_format = (u"[service_variant={service_variant}]" u"[%(name)s][env:{logging_env}] %(levelname)s " - u"[{hostname} %(process)d] [%(filename)s:%(lineno)d] " + u"[{hostname} %(process)d] [user %(userid)s] [%(filename)s:%(lineno)d] " u"- %(message)s").format(service_variant=service_variant, logging_env=logging_env, hostname=hostname) @@ -41,7 +41,7 @@ def get_logger_config(log_dir, 'formatters': { 'standard': { 'format': u'%(asctime)s %(levelname)s %(process)d ' - u'[%(name)s] %(filename)s:%(lineno)d - %(message)s', + u'[%(name)s] [user %(userid)s] %(filename)s:%(lineno)d - %(message)s', }, 'syslog_format': {'format': syslog_format}, 'raw': {'format': '%(message)s'}, @@ -49,6 +49,9 @@ def get_logger_config(log_dir, 'filters': { 'require_debug_false': { '()': 'django.utils.log.RequireDebugFalse', + }, + 'userid_context': { + '()': 'openedx.core.djangoapps.util.log_utils.UserIdFilter', } }, 'handlers': { @@ -56,6 +59,7 @@ def get_logger_config(log_dir, 'level': 'INFO', 'class': 'logging.StreamHandler', 'formatter': 'standard', + 'filters': ['userid_context'], 'stream': sys.stderr, }, 'mail_admins': { @@ -68,6 +72,7 @@ def get_logger_config(log_dir, 'class': 'logging.handlers.SysLogHandler', 'address': '/dev/log', 'formatter': 'syslog_format', + 'filters': ['userid_context'], 'facility': SysLogHandler.LOG_LOCAL0, }, 'tracking': { From e6dada4b5227d8ccf3276e9d53ccb918fe1b4363 Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Tue, 12 Mar 2019 14:13:13 -0400 Subject: [PATCH 2/3] fixup! Log current userid in all log messages --- openedx/core/djangoapps/util/log_utils.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openedx/core/djangoapps/util/log_utils.py b/openedx/core/djangoapps/util/log_utils.py index c625c2c26e..9399588709 100644 --- a/openedx/core/djangoapps/util/log_utils.py +++ b/openedx/core/djangoapps/util/log_utils.py @@ -2,9 +2,10 @@ from logging import Filter from crum import get_current_user class UserIdFilter(Filter): - def filter(record): + def filter(self, record): user = get_current_user() if user and user.pk: record.userid = user.pk else: record.userid = None + return True From b2d213ec08b36626b46b0af86cdd936f2e645408 Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Tue, 12 Mar 2019 15:13:57 -0400 Subject: [PATCH 3/3] fixup! Log current userid in all log messages --- openedx/core/djangoapps/util/log_utils.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/openedx/core/djangoapps/util/log_utils.py b/openedx/core/djangoapps/util/log_utils.py index 9399588709..1e41fb51f4 100644 --- a/openedx/core/djangoapps/util/log_utils.py +++ b/openedx/core/djangoapps/util/log_utils.py @@ -1,6 +1,12 @@ +""" +Django-based logging utilities + +UserIdFilter: A logging.Filter that adds userid to the logging context +""" from logging import Filter from crum import get_current_user + class UserIdFilter(Filter): def filter(self, record): user = get_current_user()