import time import traceback from flask import request from DBHelper.MongoHelper import MongoHelper class CheckFailed(RuntimeError): """检查异常""" def __init__(self, failed_info, status_code): self.failed_info = failed_info # 失败信息 self.status_code = status_code # 状态码 def __str__(self): return self.failed_info def log_error(self): db = MongoHelper("tfse_v0.21") info = { "ip": request.remote_addr, "request_info": { "path": request.path, "method": request.method, "headers": request.headers.__str__(), "args": request.args.__str__(), "json": request.json.__str__() }, "traceback": traceback.format_exc(), "exception": type(self).__name__, "is_solved": "no", "time": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) } db.insert_single_data( "日志", "异常日志", info ) class LogConditionCheckFailed(CheckFailed): """直接记录检查异常""" def __init__(self, failed_info, status_code): self.failed_info = failed_info # 失败信息 self.status_code = status_code # 状态码 self.log_error() class ReturnConditionCheckFailed(CheckFailed): """条件检查失败 抛出异常 接口返回失败原因和状态码"""