22 lines
662 B
Python
22 lines
662 B
Python
from typing import Dict, Any
|
|
from app.models.database import SessionLocal
|
|
from app.models.request_log import RequestLogDB
|
|
import json
|
|
from threading import Thread
|
|
|
|
def save_request_log(log_data: Dict[str, Any]):
|
|
"""保存请求日志到数据库"""
|
|
db = SessionLocal()
|
|
try:
|
|
log = RequestLogDB(**log_data)
|
|
db.add(log)
|
|
db.commit()
|
|
except Exception as e:
|
|
db.rollback()
|
|
print(f"保存日志失败: {str(e)}")
|
|
finally:
|
|
db.close()
|
|
|
|
def log_request_async(log_data: Dict[str, Any]):
|
|
"""在新线程中异步处理日志"""
|
|
Thread(target=save_request_log, args=(log_data,), daemon=True).start() |