common.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. # !/usr/bin/ python
  2. # -*- coding: utf-8 -*-
  3. '''
  4. @Project : lq-agent-api
  5. @File :common.py
  6. @IDE :PyCharm
  7. @Author :
  8. @Date :2025/7/11 11:36
  9. '''
  10. import time
  11. import uuid
  12. from functools import wraps
  13. def return_json(code=0, msg='ok', business_scene=None, data=None, trace_id=str(uuid.uuid4()), data_type="text", page=0, page_size=10, *args, **kwargs):
  14. res = {
  15. "code": code,
  16. "message": msg,
  17. "page": page,
  18. "page_size": page_size,
  19. "trace_id": trace_id,
  20. "business_scene": business_scene,
  21. }
  22. if data:
  23. if args:
  24. data += args
  25. data['dataType'] = data_type
  26. res['data'] = data
  27. if kwargs:
  28. res.update(kwargs)
  29. return res
  30. def calcu_run_time(logger, name: str):
  31. """
  32. 执行时间统计装饰器
  33. :param logger: log obj
  34. :param name: log name
  35. :return:
  36. """
  37. def inner_fuc(func):
  38. @wraps(func)
  39. def calcu_wrapper(*args, **kwargs):
  40. start_time = float("%.3f" % time.time())
  41. logger.info(f"{name}_start_time: {start_time}")
  42. result = func(*args, **kwargs)
  43. end_time = float("%.3f" % time.time())
  44. logger.info(f"{name}_end_time: {end_time}")
  45. logger.info("request_total_cost_time: {}".format(end_time - start_time))
  46. return result
  47. return calcu_wrapper
  48. return inner_fuc
  49. def handler_err(logger, err, trace_id: str="", err_name: str=""):
  50. """
  51. 日志格式化
  52. 返回具体错误
  53. 报错文件
  54. 报错行数
  55. :param logger: log obj
  56. :param err: error obj
  57. :param operate_id: 操作id, default=""
  58. :param err_name: error name, default=""
  59. """
  60. trace_id = trace_id if trace_id else f"{uuid.uuid4()}"
  61. logger.error(trace_id=trace_id, log_type=err_name, msg=f'error file: {err}')
  62. logger.error(trace_id=trace_id, log_type=err_name, msg=f'data error file: {err.__traceback__.tb_frame.f_globals["__file__"]}')
  63. logger.error(trace_id=trace_id, log_type=err_name, msg=f"data error line: {err.__traceback__.tb_lineno}")
  64. logger.exception(trace_id=trace_id, log_type=err_name, msg=f"Error Stack trace:")