имеем:
сервис "экзекьютор" который подписывается на нотификации постгреса, в которых прилетают параметры запуска тасок
Что надо:
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'ов подтягивать из общего вольюма докера в другой сервис для отображения в вебморде другого сервиса
Обсуждают сегодня