You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.7 KiB
82 lines
2.7 KiB
# -*- 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()
|
|
|