以下是一个示例代码,演示如何编写一个带有重试机制的函数,当函数失败时打印日志。
import logging
import time
def retry_with_logging(func, max_retries=3, wait_time=1):
retry_count = 0
while retry_count < max_retries:
try:
result = func()
return result
except Exception as e:
logging.error(f"Function failed: {e}")
logging.info(f"Retry attempt: {retry_count + 1}/{max_retries}")
time.sleep(wait_time)
retry_count += 1
logging.warning("Max retries reached. Function failed.")
return None
# 示例函数,模拟可能会失败的操作
def example_function():
# 假设这里有一些可能会失败的代码
# 如果代码执行成功,返回结果
# 如果代码执行失败,抛出异常
# 为了模拟失败,我们假设这个函数总是失败并抛出一个异常
raise Exception("Example function failed")
# 使用重试机制调用示例函数,并打印日志
result = retry_with_logging(example_function)
if result is not None:
print("Function executed successfully.")
else:
print("Function failed.")
在这个示例代码中,我们定义了一个retry_with_logging
函数,它接受一个函数作为参数,并执行该函数。如果函数执行成功,将返回结果。如果函数执行失败,将打印错误日志,并根据指定的重试次数和等待时间进行重试。
在example_function
中,我们模拟了一个可能会失败的操作。在这个示例中,我们总是抛出一个异常来模拟失败。
最后,我们使用retry_with_logging
函数来调用example_function
,并根据返回的结果来判断函数是否成功执行。