This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
import os
|
||||
from fastapi import FastAPI
|
||||
from fastapi import FastAPI, Request, Response
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from fastapi.security import OAuth2PasswordBearer
|
||||
from jose import JWTError, jwt
|
||||
from datetime import datetime, timedelta
|
||||
import json
|
||||
import json,logging,time
|
||||
from contextlib import asynccontextmanager
|
||||
|
||||
from dotenv import load_dotenv
|
||||
@@ -21,6 +21,7 @@ from app.login_service import login_router
|
||||
from app.chat_service import chat_router
|
||||
from app.payment_service import payment_router
|
||||
from app.system_admin import system_admin_router
|
||||
from app.wps_office_service import wps_router
|
||||
|
||||
@asynccontextmanager
|
||||
async def lifespan(app: FastAPI):
|
||||
@@ -54,6 +55,38 @@ app.add_middleware(
|
||||
expose_headers=["Content-Range", "Content-Length"] # 关键添加
|
||||
)
|
||||
|
||||
logger = logging.getLogger("api")
|
||||
|
||||
|
||||
# @app.middleware("http")
|
||||
async def log_requests(request: Request, call_next):
|
||||
"""
|
||||
请求日志记录中间件
|
||||
"""
|
||||
start_time = time.perf_counter()
|
||||
|
||||
# 记录请求信息
|
||||
logger.info(f"Request: {request.method} {request.url}")
|
||||
logger.info(f"Headers: {dict(request.headers)}")
|
||||
logger.info(f"Client: {request.client.host}:{request.client.port}")
|
||||
|
||||
# 读取请求体(注意:这会消耗流式数据)
|
||||
request_body = await request.body()
|
||||
if request_body:
|
||||
logger.info(f"Request body: {request_body.decode('utf-8', errors='ignore')}")
|
||||
|
||||
# 调用下一个中间件或路由处理程序
|
||||
response = await call_next(request)
|
||||
|
||||
# 计算处理时间
|
||||
process_time = time.perf_counter() - start_time
|
||||
|
||||
# 记录响应信息
|
||||
logger.info(f"Response status: {response.status_code}")
|
||||
logger.info(f"Process time: {process_time:.4f}s")
|
||||
|
||||
return response
|
||||
|
||||
# 挂载子路由
|
||||
app.include_router(asr_router, prefix="/asr")
|
||||
app.include_router(monitor_router, prefix="/monitor")
|
||||
@@ -62,7 +95,7 @@ app.include_router(login_router, prefix="/auth")
|
||||
app.include_router(chat_router, prefix="/chat")
|
||||
app.include_router(payment_router, prefix="/payment")
|
||||
app.include_router(system_admin_router,prefix="/system_admin")
|
||||
|
||||
app.include_router(wps_router,prefix="/wps")
|
||||
# 挂载静态文件(可选)
|
||||
# app.mount("/static", StaticFiles(directory="static"), name="static")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user