aliyun_log.py 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. # -*- coding: utf-8 -*-
  2. """
  3. 公共方法,包含:生成log / 删除log
  4. """
  5. import json
  6. from datetime import date, timedelta
  7. from datetime import datetime
  8. from typing import Optional
  9. from aliyun.log import PutLogsRequest, LogClient, LogItem
  10. proxies = {"http": None, "https": None}
  11. class AliyunLogger:
  12. # 统一获取当前时间 <class 'datetime.datetime'> 2022-04-14 20:13:51.244472
  13. now = datetime.now()
  14. # 昨天 <class 'str'> 2022-04-13
  15. yesterday = (date.today() + timedelta(days=-1)).strftime("%Y-%m-%d")
  16. # 今天 <class 'datetime.date'> 2022-04-14
  17. today = date.today()
  18. # 明天 <class 'str'> 2022-04-15
  19. tomorrow = (date.today() + timedelta(days=1)).strftime("%Y-%m-%d")
  20. # 写入阿里云日志
  21. @staticmethod
  22. def logging(channel: str,
  23. principal: str,
  24. channel_user: str,
  25. channel_video_id: str,
  26. message: str,
  27. code: str,
  28. data: Optional[str] = None,
  29. pq_video_id: Optional[str] = None):
  30. """
  31. 写入阿里云日志
  32. 测试库: https://sls.console.aliyun.com/lognext/project/crawler-log-dev/logsearch/crawler-log-dev
  33. 正式库: https://sls.console.aliyun.com/lognext/project/crawler-log-prod/logsearch/crawler-log-prod
  34. """
  35. accessKeyId = "LTAIWYUujJAm7CbH"
  36. accessKey = "RfSjdiWwED1sGFlsjXv0DlfTnZTG1P"
  37. project = "crawler-log-prod"
  38. logstore = "rewriting-log"
  39. endpoint = "cn-hangzhou.log.aliyuncs.com"
  40. if data:
  41. data = dict(item.split(":", 1) for item in data.split(","))
  42. contents = [
  43. ("principal", principal),
  44. ("channel", channel),
  45. ("channel_user", str(channel_user) if channel_user is not None else ""),
  46. ("channel_video_id", str(channel_video_id) if channel_video_id is not None else ""),
  47. ("message", str(message) if message is not None else ""),
  48. ("code", str(code) if code is not None else ""),
  49. ("data", json.dumps(data, ensure_ascii=False) if data else ""),
  50. ("pq_video_id", pq_video_id if pq_video_id else "")
  51. ]
  52. # 创建 LogClient 实例
  53. client = LogClient(endpoint, accessKeyId, accessKey)
  54. log_group = []
  55. log_item = LogItem()
  56. log_item.set_contents(contents)
  57. log_group.append(log_item)
  58. # 写入日志
  59. request = PutLogsRequest(
  60. project=project,
  61. logstore=logstore,
  62. topic="",
  63. source="",
  64. logitems=log_group,
  65. compress=False,
  66. )
  67. client.put_logs(request)