aliyun_log.py 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. # -*- coding: utf-8 -*-
  2. """
  3. 公共方法,包含:生成log / 删除log
  4. """
  5. import json
  6. from typing import Optional
  7. from aliyun.log import PutLogsRequest, LogClient, LogItem
  8. from loguru import logger
  9. proxies = {"http": None, "https": None}
  10. class AliyunLogger:
  11. # 写入阿里云日志
  12. @staticmethod
  13. def logging(channel: str,
  14. principal: str,
  15. channel_user: str,
  16. channel_video_id: str,
  17. message: str,
  18. code: str,
  19. data: Optional[str] = None,
  20. pq_video_id: Optional[str] = None):
  21. """
  22. 写入阿里云日志
  23. 测试库: https://sls.console.aliyun.com/lognext/project/crawler-log-dev/logsearch/crawler-log-dev
  24. 正式库: https://sls.console.aliyun.com/lognext/project/crawler-log-prod/logsearch/crawler-log-prod
  25. """
  26. accessKeyId = "LTAIWYUujJAm7CbH"
  27. accessKey = "RfSjdiWwED1sGFlsjXv0DlfTnZTG1P"
  28. project = "crawler-log-prod"
  29. logstore = "rewriting-log"
  30. endpoint = "cn-hangzhou.log.aliyuncs.com"
  31. try:
  32. contents = [
  33. ("principal", principal),
  34. ("channel", channel),
  35. ("channel_user", str(channel_user) if channel_user is not None else ""),
  36. ("channel_video_id", str(channel_video_id) if channel_video_id is not None else ""),
  37. ("message", str(message) if message is not None else ""),
  38. ("code", str(code) if code is not None else ""),
  39. ("data", json.dumps(data, ensure_ascii=False) if data else ""),
  40. ("pq_video_id", pq_video_id if pq_video_id else "")
  41. ]
  42. # 创建 LogClient 实例
  43. client = LogClient(endpoint, accessKeyId, accessKey)
  44. log_group = []
  45. log_item = LogItem()
  46. log_item.set_contents(contents)
  47. log_group.append(log_item)
  48. # 写入日志
  49. request = PutLogsRequest(
  50. project=project,
  51. logstore=logstore,
  52. topic="",
  53. source="",
  54. logitems=log_group,
  55. compress=False,
  56. )
  57. client.put_logs(request)
  58. except Exception as e:
  59. logger.error(f"[+] 阿里云日志写入失败{e}")