deliveryman-api/app/core/logger.py
2025-01-13 19:01:39 +08:00

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()