如何获取 Python 请求库进行的每次重试尝试的日志?

How to get log of every retry attempt made by Python Requests Library?

我正在使用以下代码在 python 请求中实现重试机制。

from requests import Session
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry

s = Session()
retries = Retry(total=5,
                raise_on_redirect=True, 
                raise_on_status=True,
                backoff_factor=1,
                status_forcelist=[ 500, 502, 503, 504 ])
s.mount('http://', HTTPAdapter(max_retries=retries))
s.mount('https://', HTTPAdapter(max_retries=retries))
response=s.get('https://example.com')

它工作得很好,但是这一切都是悄悄发生的。 我想要的是在进行重试尝试时得到通知,如果可能的话,为什么会发生重试。每次重试我都想要这样的东西。

print(Exception.__class__)
print('Retrying after' + x + 'seconds')

可能吗?

您可以编写自己的 Class 来添加应该从重试继承的日志。

class LogRetry(Retry):
  """
     Adding extra logs before making a retry request     
  """      
  def __init__(self, *args, **kwargs):
    logger.info(f'<add your logs here>')
    super().__init__(*args, **kwargs)

retries = LogRetry(<your args>)