log.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. """
  2. @author: luojunhui
  3. """
  4. import time
  5. import json
  6. from aliyun.log import LogClient, PutLogsRequest, LogItem
  7. def logging(
  8. code,
  9. mode="prod",
  10. trace_id=None,
  11. info=None,
  12. port=None,
  13. alg=None,
  14. function=None,
  15. data=None
  16. ):
  17. """
  18. :param mode: 生产模式 or 测试模式
  19. :param trace_id: 请求唯一 id
  20. :param data: 信息
  21. :param code: 日志状态码
  22. :param info: 日志消息
  23. :param port: 请求接口
  24. :param alg: 算法主体
  25. :param function: 方法信息
  26. :return:
  27. """
  28. if data is None:
  29. data = {}
  30. accessKeyId = "LTAIP6x1l3DXfSxm"
  31. accessKey = "KbTaM9ars4OX3PMS6Xm7rtxGr1FLon"
  32. project = "changwen-alg"
  33. log_store = "weixin_video_match"
  34. endpoint = "cn-hangzhou.log.aliyuncs.com"
  35. # 创建 LogClient 实例
  36. client = LogClient(endpoint, accessKeyId, accessKey)
  37. log_group = []
  38. log_item = LogItem()
  39. contents = [
  40. (f"mode", str(mode)),
  41. (f"code", str(code)),
  42. (f"alg", str(alg)),
  43. (f"function", str(function)),
  44. (f"info", str(info)),
  45. (f"port", str(port)),
  46. (f"data", json.dumps(data, ensure_ascii=False) if data else ""),
  47. (f"trace_id", str(trace_id)),
  48. ("timestamp", str(int(time.time()))),
  49. ]
  50. log_item.set_contents(contents)
  51. log_group.append(log_item)
  52. # 写入日志
  53. request = PutLogsRequest(
  54. project=project,
  55. logstore=log_store,
  56. topic="",
  57. source="",
  58. logitems=log_group,
  59. compress=False,
  60. )
  61. try:
  62. client.put_logs(request)
  63. except Exception as e:
  64. print("日志失败")
  65. print(e)