Django: запись в пользовательские файлы каждый день

#django #logging

#django #ведение журнала

Вопрос:

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

Если у меня есть задачи cron my_cron_1, my_cron_2, my_cron_3, я хочу иметь возможность войти в файл и добавить дату

 MyCron1_2020-12-14.log
MyCron2_2020-12-14.log
MyCron3_2020-12-14.log

MyCron1_2020-12-15.log
MyCron2_2020-12-15.log
MyCron3_2020-12-15.log

MyCron1_2020-12-16.log
MyCron2_2020-12-16.log
MyCron3_2020-12-16.log
 

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

Прямо сейчас у меня есть класс MyLogger

 import logging    


class MyLogger:

    def __init__(self,filename):

        # Gets or creates a logger
        self._filename = filename


    def log(self,message):
        message = str(message)

        print(message)

        logger = logging.getLogger(__name__)  

        # set log level
        logger.setLevel(logging.DEBUG)

        # define file handler and set formatter
        file_handler = logging.FileHandler('logs/' self._filename '.log')
        #formatter    = logging.Formatter('%(asctime)s : %(levelname)s: %(message)s')
        formatter = logging.Formatter('%(asctime)s : %(message)s')
        file_handler.setFormatter(formatter)

        # add file handler to logger
        logger.addHandler(file_handler)

        # Logs
        logger.info(message)
 

Я вызываю класс следующим образом

 logger = MyLogger("FirstLogFile_2020-12-14")
logger.log("ONE")

logger1 = MyLogger("SecondLogFile_2020-12-14")
logger1.log("TWO")
 

FirstLogFile_2020-12-14 будет иметь ОДИН ДВА, но он должен иметь только ОДИН
SecondLogFile_2020-12-14 будет иметь ДВА

Почему это так? Почему журналы записываются в неправильный файл? Что не так с моим кодом?

Комментарии:

1. Вы изобретаете TimedRotatingFileHandler заново ?