""" 作用 : 用于debug调试相关的函数,不用于最终的记录 """ import logging import time from functools import wraps # 配置日志 logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) logger = logging.getLogger('FunctionLogger') def log_function_call(level=logging.INFO): """ 函数日志记录装饰器 参数: level: 日志级别,默认为INFO """ def decorator(func): @wraps(func) def wrapper(*args, **kwargs): # 记录函数开始执行 logger.log(level, f"开始执行函数: {func.__name__}") logger.log(level, f"参数: args={args}, kwargs={kwargs}") # 记录执行时间 start_time = time.time() try: # 执行函数 result = func(*args, **kwargs) # 记录执行结果 end_time = time.time() execution_time = end_time - start_time logger.log(level, f"函数 {func.__name__} 执行成功") logger.log(level, f"返回值: {result}") logger.log(level, f"执行时间: {execution_time:.4f} 秒") return result except Exception as e: # 记录异常信息 end_time = time.time() execution_time = end_time - start_time logger.error(f"函数 {func.__name__} 执行失败: {str(e)}") logger.error(f"执行时间: {execution_time:.4f} 秒") raise # 重新抛出异常 return wrapper return decorator