Debug.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. """
  2. 作用 : 用于debug调试相关的函数,不用于最终的记录
  3. """
  4. import logging
  5. import time
  6. from functools import wraps
  7. # 配置日志
  8. logging.basicConfig(
  9. level=logging.INFO,
  10. format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
  11. )
  12. logger = logging.getLogger('FunctionLogger')
  13. def log_function_call(level=logging.INFO):
  14. """
  15. 函数日志记录装饰器
  16. 参数:
  17. level: 日志级别,默认为INFO
  18. """
  19. def decorator(func):
  20. @wraps(func)
  21. def wrapper(*args, **kwargs):
  22. # 记录函数开始执行
  23. logger.log(level, f"开始执行函数: {func.__name__}")
  24. logger.log(level, f"参数: args={args}, kwargs={kwargs}")
  25. # 记录执行时间
  26. start_time = time.time()
  27. try:
  28. # 执行函数
  29. result = func(*args, **kwargs)
  30. # 记录执行结果
  31. end_time = time.time()
  32. execution_time = end_time - start_time
  33. logger.log(level, f"函数 {func.__name__} 执行成功")
  34. logger.log(level, f"返回值: {result}")
  35. logger.log(level, f"执行时间: {execution_time:.4f} 秒")
  36. return result
  37. except Exception as e:
  38. # 记录异常信息
  39. end_time = time.time()
  40. execution_time = end_time - start_time
  41. logger.error(f"函数 {func.__name__} 执行失败: {str(e)}")
  42. logger.error(f"执行时间: {execution_time:.4f} 秒")
  43. raise # 重新抛出异常
  44. return wrapper
  45. return decorator