имеем: 
                  
                  
                  сервис "экзекьютор" который подписывается на нотификации постгреса, в которых прилетают параметры запуска тасок
                  
                  
                  
                  
                  
                  Что надо: 
                  
                  
                  1 - вести лог сервиса чисто в режиме стрима
                  
                  
                  2 - вести лог для каждого запуска условного метода run, в котором происходит обработка того, что прилетело в калбеке от базы, причём лог каждого запуска метода должен сохраняться в разных файлах (имя файла  так же прилетает в калбеке)
                  
                  
                  
                  
                  
                  В чём вопрос:
                  
                  
                  Сейчас логгер для run описан так
                  
                  
                      def run(self, task_data: ExecutorTaskRunData):
                  
                  
                          """redefine me in your executor"""
                  
                  
                          logger = logging.getLogger("executor.run")
                  
                  
                          file_handler = logging.FileHandler(filename=task_data.log_filename, encoding='utf-8')
                  
                  
                          file_handler.setLevel(logging.INFO)
                  
                  
                          file_handler.setFormatter(logger_format)
                  
                  
                          logger.addHandler(file_handler)
                  
                  
                  
                  
                  
                          logger.debug(task_data.model_dump())
                  
                  
                          print("FAKE RUN sleep 10") # тут будет выполнялка
                  
                  
                          logger.info(f"test_{random.randint(0, 10)}")
                  
                  
                  
                  
                  
                          logger.handlers.clear()
                  
                  
                  Возможно ли сделать что-то более изящное, чем создание логгера и его удаление при каждом вызове run?
                  
                  
                
в смысле у тебя место хранения логов определятся бизнес-логикой?
Да, там жесть придумали=)) Чуваки хотят эти логи запуска run'ов подтягивать из общего вольюма докера в другой сервис для отображения в вебморде другого сервиса
Обсуждают сегодня