From 41e0c8be286de5083e5d9f77d14603a1c8bb21f1 Mon Sep 17 00:00:00 2001 From: Maximilian Moser <maximilian.moser@tuwien.ac.at> Date: Fri, 26 May 2023 14:30:38 +0200 Subject: [PATCH] Handle working outside of request context in logging formatter --- invenio_config_tuw/formatters.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/invenio_config_tuw/formatters.py b/invenio_config_tuw/formatters.py index 0b36d0c..dd1e296 100644 --- a/invenio_config_tuw/formatters.py +++ b/invenio_config_tuw/formatters.py @@ -32,13 +32,20 @@ class CustomFormatter(Formatter): """Custom logging formatter that provides more details.""" def __init__(self, fmt=custom_format, **kwargs): - super(CustomFormatter, self).__init__(fmt=fmt, **kwargs) + super().__init__(fmt=fmt, **kwargs) def format(self, record): - user_id = "Anonymous" - if current_user is not None and current_user.is_authenticated: - user_id = current_user.id + try: + user_id = "Anonymous" + if current_user and current_user.is_authenticated: + user_id = current_user.id + + record.user_id = user_id + record.request_url = request.base_url + + except RuntimeError: + # this happens when we're working outside a request context + record.user_id = None + record.request_url = None - record.user_id = user_id - record.request_url = request.base_url return super(CustomFormatter, self).format(record) -- GitLab