55 lines
1.4 KiB
Python
55 lines
1.4 KiB
Python
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):
|
|
"""条件检查失败抛出异常 接口返回失败原因和状态码"""
|