|
@@ -11,6 +11,7 @@ from Object.mongodb import mongodb
|
|
from Service.CommonService import CommonService
|
|
from Service.CommonService import CommonService
|
|
from Service.ModelService import ModelService
|
|
from Service.ModelService import ModelService
|
|
from Service.TemplateService import TemplateService
|
|
from Service.TemplateService import TemplateService
|
|
|
|
+from Object.RedisObject import RedisObject
|
|
|
|
|
|
|
|
|
|
# 杂项类,共用行不高,但有些地方需求
|
|
# 杂项类,共用行不高,但有些地方需求
|
|
@@ -115,6 +116,46 @@ class MiscellService():
|
|
}
|
|
}
|
|
ModelService.addAccessLog(data=add_data)
|
|
ModelService.addAccessLog(data=add_data)
|
|
|
|
|
|
|
|
+ @staticmethod
|
|
|
|
+ def batch_add_access_log(request, status_code):
|
|
|
|
+ request.encoding = 'utf-8'
|
|
|
|
+ if request.method == 'GET':
|
|
|
|
+ request_dict = request.GET
|
|
|
|
+ if request.method == 'POST':
|
|
|
|
+ request_dict = request.POST
|
|
|
|
+ api_list = TemplateService.log_api()
|
|
|
|
+ request_path = request.path.strip().strip('/')
|
|
|
|
+ if request_path in api_list:
|
|
|
|
+ user = MiscellService.get_access_name(request_dict)
|
|
|
|
+ clientIP = CommonService.get_ip_address(request)
|
|
|
|
+ now_time = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(utc)
|
|
|
|
+ password = request_dict.get('userPwd', None)
|
|
|
|
+ if password is not None:
|
|
|
|
+ request_dict = dict(request_dict)
|
|
|
|
+ request_dict.pop('userPwd')
|
|
|
|
+ content = json.dumps(request_dict)
|
|
|
|
+ add_data = {
|
|
|
|
+ 'user': user,
|
|
|
|
+ 'ip': clientIP,
|
|
|
|
+ 'status': status_code,
|
|
|
|
+ 'url': request.META['SERVER_PROTOCOL'] + '-' + request.method + '-' + request.path,
|
|
|
|
+ 'operation': request_path,
|
|
|
|
+ 'time': str(now_time),
|
|
|
|
+ 'content': content
|
|
|
|
+ }
|
|
|
|
+ redisObj = RedisObject()
|
|
|
|
+ loggerData = json.dumps(add_data)
|
|
|
|
+ print(loggerData)
|
|
|
|
+ redisObj.rpush(name='logger', val=loggerData)
|
|
|
|
+ # 判断redis列表长度
|
|
|
|
+ if redisObj.llen(name='logger') > 100:
|
|
|
|
+ data_list = redisObj.lrange('logger', 0, -1)
|
|
|
|
+ redisObj.del_data(key='logger')
|
|
|
|
+ ModelService.add_batch_log(data_list)
|
|
|
|
+ else:
|
|
|
|
+ pass
|
|
|
|
+ # add batch
|
|
|
|
+
|
|
|
|
|
|
def addLog(request, status_code):
|
|
def addLog(request, status_code):
|
|
try:
|
|
try:
|