aliyun_log.py 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. from loguru import logger
  11. proxies = {"http": None, "https": None}
  12. class AliyunLogger:
  13. # 统一获取当前时间 <class 'datetime.datetime'> 2022-04-14 20:13:51.244472
  14. now = datetime.now()
  15. # 昨天 <class 'str'> 2022-04-13
  16. yesterday = (date.today() + timedelta(days=-1)).strftime("%Y-%m-%d")
  17. # 今天 <class 'datetime.date'> 2022-04-14
  18. today = date.today()
  19. # 明天 <class 'str'> 2022-04-15
  20. tomorrow = (date.today() + timedelta(days=1)).strftime("%Y-%m-%d")
  21. # 写入阿里云日志
  22. @staticmethod
  23. def logging(channel: Optional[str] = None,
  24. data: Optional[str] = None,
  25. description: Optional[str] = None,
  26. user_id: Optional[str] = None):
  27. """
  28. 写入阿里云日志
  29. 测试库: https://sls.console.aliyun.com/lognext/project/crawler-log-dev/logsearch/crawler-log-dev
  30. 正式库: https://sls.console.aliyun.com/lognext/project/crawler-log-prod/logsearch/crawler-log-prod
  31. """
  32. accessKeyId = "LTAIWYUujJAm7CbH"
  33. accessKey = "RfSjdiWwED1sGFlsjXv0DlfTnZTG1P"
  34. project = "crawler-log-prod"
  35. logstore = "top_automatic_info"
  36. endpoint = "cn-hangzhou.log.aliyuncs.com"
  37. try:
  38. contents = [
  39. ("channel", channel),
  40. ("description", description),
  41. ("data", json.dumps(data, ensure_ascii=False, indent=4)),
  42. ("user_id", user_id)
  43. ]
  44. # 创建 LogClient 实例
  45. client = LogClient(endpoint, accessKeyId, accessKey)
  46. log_group = []
  47. log_item = LogItem()
  48. log_item.set_contents(contents)
  49. log_group.append(log_item)
  50. # 写入日志
  51. request = PutLogsRequest(
  52. project=project,
  53. logstore=logstore,
  54. topic="",
  55. source="",
  56. logitems=log_group,
  57. compress=False,
  58. )
  59. client.put_logs(request)
  60. except Exception as e:
  61. logger.error(f"[+] 阿里云日志写入失败{e}")