Эффективное логирование в Django: запись логов в базу данных для ключевых представлений

    Рассмотрим типичный Django-проект, где файл views.py содержит следующую структуру:

    from django.shortcuts import render
    from models import ORM_Model
    import logging
    
    logging.basicConfig(
        format="%(time)s - %(name)s %(lineno)d - %(levelname)s - %(message)s",
        level=logging.INFO,
        #datefmt='%H:%M:%S',
        fmt='%(asctime)s.%(msecs)03d',
    )
    logger = logging.getLogger(__name__)

    Текущая реализация представлений

    В проекте присутствуют два типа представлений с разным уровнем важности логируемой информации:

    def view_info_app(request, *args, **kwargs):
        """
        Все выводимые здесь данные имеют критическую важность.
        """
        logger.info("APP: view_info_app")
        info_objects = ORM_Model.objects.get(id=123)
        logger.info("Очень нужная информация - %s", info_objects)
        return render("templates/index.html", {})
    
    def view_index_app(request, *args, **kwargs):
        """
        Эта информация не является важной.
        """
        logger.info("APP: view_index_app")
        info_objects = ORM_Model.objects.filter()
        logger.info("Не нужная информация - %s", info_objects)
        return render("templates/index.html", {})

    Постановка задачи

    Возникла необходимость расширить функциональность логирования: помимо вывода в консоль, требуется сохранять логи определённых представлений в базу данных. Ключевой вопрос заключается в том, как элегантно реализовать эту возможность только для необходимой части представлений, избегая дублирования кода и сохраняя архитектурную чистоту решения.