import logging from django.conf import settings from structlog.typing import EventDict from vbv_lernwelt.core.utils import safe_json_dumps def structlog_convert_to_json_for_new_relic( _: logging.Logger, __: str, event_dict: EventDict ) -> str: """ The *event_dict* is serialized to a json string, so that in New Relic logs the nested keys will show up as attributes. """ return safe_json_dumps(event_dict) def structlog_add_app_info( _: logging.Logger, __: str, event_dict: EventDict ) -> EventDict: event_dict["django_app"] = "vbv_lernwelt" event_dict["app_environment"] = settings.APP_ENVIRONMENT event_dict["django_app_dev_mode"] = f"vbv_lernwelt_{settings.APP_ENVIRONMENT}" return event_dict