Ведение журнала Python Tenacity retry_state с помощью регистратора из внешней области ⇐ Python

Программы на Python
Anonymous
Ведение журнала Python Tenacity retry_state с помощью регистратора из внешней области

Сообщение Anonymous »

У меня есть модуль, который включает служебную функцию с тегом повторной попытки

Код: Выделить всё

from tenacity import retry, stop_after_attempt, wait_random

def log_attempt_number(logger, retry_state):
logger.info(f"Attempt number {retry_state}")
logger.info("Logger is not recognized here unless we instantiate in this file")

@retry(stop=stop_after_attempt(3), wait=wait_random(min=1, max=3), before=log_attempt_number)
def retry_function(logger, driver):
logger.info("Outer scope logger works fine here")
source = driver.page_source
return source
Поскольку функция retry_function используется в других сценариях, я хочу иметь возможность использовать существующие средства ведения журнала этих сценариев для вывода, а не создавать экземпляр средства ведения журнала в этом модуле. Однако я не могу понять, как подключить регистратор внешней области для использования в функции log_attempt_number, поскольку он вызывается только внутри Tenacity @retry, который, похоже, на самом деле не принимает аргументы.

Подробнее здесь: https://stackoverflow.com/questions/756 ... uter-scope

Вернуться в «Python»