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

2023-11-29

我使用以下代码在 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')

是否可以?


你可以编写自己的类来添加日志,它应该继承自Retry。

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>)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取Python请求库每次重试尝试的日志? 的相关文章

随机推荐