# -*- coding: UTF-8 -*- ''' 获取每天日期,新建 logs 文件 存到 logs 文件夹中 ''' import time from datetime import datetime import os import sys sys.path.append(os.path.join(os.path.abspath(__file__).split('auto')[0] + 'auto')) from utils.utils_mongo_handle import MongoHandle from utils.utils_send_email import SendEmail from base.base_load_config import load_config, get_base_path config_json = load_config() base_project = get_base_path() class LogsHandle(object): def __init__(self): self.now_day = time.strftime('%Y-%m-%d', time.localtime()) db = 'logs' collection = 'logs_' + self.now_day self.mongo = MongoHandle(db=db, collection=collection, del_db=False, del_collection=False, auto_remove=0) def logs_generate(self): data_to_insert = { "title": "logs", "context": 'generate logs', "state": "create", "create_time": int(time.time()), "create_datetime": datetime.now().strftime("%Y-%m-%d %H:%M:%S") } self.mongo.collection.insert_one(data_to_insert) def logs_send(self): subject = 'auto collection logs' title = 'auto collection - logs: {}'.format(self.now_day) text = '' # TODO # 从 mongodb 读取日志, 拼接 text, 发送邮件 # 查询所有文档 cursor = self.mongo.collection.find() # 遍历结果集 for record in cursor: text += "logs_source: {}, logs_detail: {}, state: {} logs_create_time: {}\n\n".format( record.setdefault('title'), record.setdefault('content'), record.setdefault('state'), record.setdefault('create_datetime'), ) S = SendEmail(subject=subject, title=title, text=text) S.send() def logs_write(self, title_source=None, content=None, state=None, send_now=False): data_to_insert = { "title": title_source, "context": content, "state": state, "create_time": int(time.time()), "create_datetime": datetime.now().strftime("%Y-%m-%d %H:%M:%S") } self.mongo.collection.insert_one(data_to_insert) if send_now: subject = 'auto collection' title = 'auto collection - running logs: {}'.format(self.now_day) text = 'logs_source: {}, logs_detail: {}, state: {} logs_create_time: {}'.format( data_to_insert.setdefault('title'), data_to_insert.setdefault('content'), data_to_insert.setdefault('state'), data_to_insert.setdefault('create_datetime'), ) Send = SendEmail(subject=subject, title=title, text=text) Send.send()