Merge pull request #19985 from cpennington/log-user-id

Log current userid in all log messages
This commit is contained in:
Calen Pennington
2019-03-13 14:53:13 -04:00
committed by GitHub
2 changed files with 24 additions and 2 deletions

View File

@@ -0,0 +1,17 @@
"""
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()
if user and user.pk:
record.userid = user.pk
else:
record.userid = None
return True

View File

@@ -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': {