tools_logs_handle.py 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. # -*- coding: UTF-8 -*-
  2. '''
  3. 获取每天日期,新建 logs 文件
  4. 存到 logs 文件夹中
  5. '''
  6. import time
  7. from datetime import datetime
  8. from tools_mongo_handle import MongoHandle
  9. from tools_send_email import SendEmail
  10. import tools_load_config
  11. config_json = tools_load_config.load_config()
  12. base_project = tools_load_config.get_base_path()
  13. class LogsHandle(object):
  14. def __init__(self):
  15. self.now_day = time.strftime('%Y-%m-%d', time.localtime())
  16. db = 'logs'
  17. collection = 'logs_' + self.now_day
  18. self.mongo = MongoHandle(db=db, collection=collection, del_db=False, del_collection=False, auto_remove=0)
  19. def logs_generate(self):
  20. data_to_insert = {
  21. "title": "logs",
  22. "context": 'generate logs',
  23. "state": "create",
  24. "create_time": int(time.time()),
  25. "create_datetime": datetime.now().strftime("%Y-%m-%d %H:%M:%S")
  26. }
  27. self.mongo.collection.insert_one(data_to_insert)
  28. def logs_send(self):
  29. subject = 'auto collection logs'
  30. title = 'auto collection - logs: {}'.format(self.now_day)
  31. text = ''
  32. # TODO
  33. # 从 mongodb 读取日志, 拼接 text, 发送邮件
  34. # 查询所有文档
  35. cursor = self.mongo.collection.find()
  36. # 遍历结果集
  37. for record in cursor:
  38. text += "logs_source: {}, logs_detail: {}, state: {} logs_create_time: {}\n\n".format(record.setdefault('title'),
  39. record.setdefault('content'),
  40. record.setdefault('state'),
  41. record.setdefault('create_datetime'),
  42. )
  43. S = SendEmail(subject=subject, title=title, text=text)
  44. S.send()
  45. def logs_write(self, title_source=None, content=None, state=None, send_now=False):
  46. data_to_insert = {
  47. "title": title_source,
  48. "context": content,
  49. "state": state,
  50. "create_time": int(time.time()),
  51. "create_datetime": datetime.now().strftime("%Y-%m-%d %H:%M:%S")
  52. }
  53. self.mongo.collection.insert_one(data_to_insert)
  54. if send_now:
  55. subject = 'auto collection'
  56. title = 'auto collection - running logs: {}'.format(self.now_day)
  57. text = 'logs_source: {}, logs_detail: {}, state: {} logs_create_time: {}'.format(data_to_insert.setdefault('title'),
  58. data_to_insert.setdefault('content'),
  59. data_to_insert.setdefault('state'),
  60. data_to_insert.setdefault('create_datetime'),
  61. )
  62. Send = SendEmail(subject=subject, title=title, text=text)
  63. Send.send()