Динамическое имя файла журнала с данными входящего почтового запроса в Django logging

Я очень новичок в Django. У меня есть сценарий использования, в котором мне нужно сгруппировать имя файла журнала из входящих json данных почтового запроса

Пример json данных пост-запроса

{
    "name": "kurt",
    "year_of_birth": 1996,
    "course": "Arts"
}

Я хочу, чтобы создавался файл с именем 1996.log, чтобы я мог иметь данные всех студентов с годом_рождения 1996, зарегистрированные в 1996.log

Пример 2

{
    "name": "Mike",
    "year_of_birth": 1994,
    "course": "Science"
}

В этом случае имя файла журнала должно быть 1994.log

Таким образом, я хочу генерировать имя журнала по году_рождения и иметь журналы, зарегистрированные в соответствующем файле журнала по отношению к данным входящего почтового запроса

views.py

from rest_framework import viewsets

import logging


student_logger = logging.getLogger("student_log")


class BlogViewSet(viewsets.ViewSet):

    def create(self, request, *args, **kwargs):
        data = request.data
        print(f"\n############ data: {data} \n\n")
        student_logger.debug(data)
        return Response({"data": "logged successfully", "msg": "success"})

LOGGING в settings.py

LOGGING = {
    "version": 1,
    "formatters": {
        'student_formatter': {
            'format': '{levelname} {asctime} {pathname} {filename} {funcName} {lineno} {message}',
            'style': '{',
        },

    },
    "handlers": {
        "student_handlers": {
            "level": "DEBUG",
            "class": "logging.FileHandler",
            "filename": os.path.join(BASE_DIR, "logs/year_of_birth.log"), # want to change year_of_birth.log with incoming post request data's year_of_birth i.e 1996.log, 1994.log
            'formatter': 'student_formatter'
        }
    },
    "loggers": {
        "student_log": {
            "handlers": ["student_handlers"],
            "propagate": True,
            "level": "DEBUG"
        }
    }

}

Как мне этого достичь. Если я не понял вопроса, пожалуйста, дайте мне знать.

Заранее спасибо

Вернуться на верх