Showing
3 changed files
with
21 additions
and
15 deletions
| 1 | import json | 1 | import json |
| 2 | import time | 2 | import time |
| 3 | import logging | 3 | import logging |
| 4 | + | ||
| 4 | logger = logging.getLogger(__name__) | 5 | logger = logging.getLogger(__name__) |
| 5 | -from fastapi import FastAPI, Request | 6 | +from fastapi import Request |
| 6 | from starlette.middleware.base import BaseHTTPMiddleware | 7 | from starlette.middleware.base import BaseHTTPMiddleware |
| 7 | from starlette.responses import StreamingResponse | 8 | from starlette.responses import StreamingResponse |
| 9 | +from config import settings | ||
| 10 | + | ||
| 8 | 11 | ||
| 9 | class LoggingMiddleware(BaseHTTPMiddleware): | 12 | class LoggingMiddleware(BaseHTTPMiddleware): |
| 10 | - """HTTP请求/响应日志中间件.""" | ||
| 11 | 13 | ||
| 14 | + # 日志记录路径前缀 | ||
| 12 | async def dispatch(self, request: Request, call_next): | 15 | async def dispatch(self, request: Request, call_next): |
| 13 | - # 记录请求开始时间 | ||
| 14 | - start_time = time.time() | ||
| 15 | - | ||
| 16 | # 获取请求信息 | 16 | # 获取请求信息 |
| 17 | method = request.method | 17 | method = request.method |
| 18 | url = str(request.url) | 18 | url = str(request.url) |
| 19 | client_host = request.client.host if request.client else "unknown" | 19 | client_host = request.client.host if request.client else "unknown" |
| 20 | 20 | ||
| 21 | + # 判断是否需要记录日志 | ||
| 22 | + should_log = request.url.path.startswith(settings.url_prefix) | ||
| 23 | + | ||
| 24 | + if should_log: | ||
| 25 | + # 记录请求开始时间 | ||
| 26 | + start_time = time.time() | ||
| 27 | + | ||
| 21 | # 读取请求体 | 28 | # 读取请求体 |
| 22 | request_body = None | 29 | request_body = None |
| 23 | if method in ("POST", "PUT", "PATCH"): | 30 | if method in ("POST", "PUT", "PATCH"): |
| @@ -77,3 +84,6 @@ class LoggingMiddleware(BaseHTTPMiddleware): | @@ -77,3 +84,6 @@ class LoggingMiddleware(BaseHTTPMiddleware): | ||
| 77 | logger.info(f" Response Body: {response_body}") | 84 | logger.info(f" Response Body: {response_body}") |
| 78 | 85 | ||
| 79 | return response | 86 | return response |
| 87 | + else: | ||
| 88 | + # 不需要记录日志的请求,直接处理 | ||
| 89 | + return await call_next(request) |
| 1 | -"""API路由聚合模块.""" | ||
| 2 | - | ||
| 3 | from fastapi import APIRouter | 1 | from fastapi import APIRouter |
| 2 | +from config import settings | ||
| 3 | + | ||
| 4 | +api_router = APIRouter(prefix=settings.url_prefix) | ||
| 4 | 5 | ||
| 5 | -# 创建主路由 | ||
| 6 | -api_router = APIRouter(prefix="/aigc-embedding/api") | ||
| 7 | 6 | ||
| 8 | def register_router(router: APIRouter, prefix: str): | 7 | def register_router(router: APIRouter, prefix: str): |
| 9 | api_router.include_router(router, prefix=prefix) | 8 | api_router.include_router(router, prefix=prefix) |
| 10 | - |
| @@ -2,12 +2,10 @@ app_name: "Embedding Service" | @@ -2,12 +2,10 @@ app_name: "Embedding Service" | ||
| 2 | app_version: "1.0.0" | 2 | app_version: "1.0.0" |
| 3 | port: 8000 | 3 | port: 8000 |
| 4 | debug: false | 4 | debug: false |
| 5 | +url_prefix: "/aigc-embedding/api" | ||
| 5 | 6 | ||
| 6 | db_es_enable: true | 7 | db_es_enable: true |
| 7 | db_es_url: "http://localhost:9200" | 8 | db_es_url: "http://localhost:9200" |
| 8 | -db_postgres_enable: false | ||
| 9 | -db_postgres_url: "postgresql://postgres:postgres@localhost:5432/postgres" | ||
| 10 | 9 | ||
| 11 | -service: | ||
| 12 | - face: | ||
| 13 | - db_client: "es" | 10 | +#db_postgres_enable: false |
| 11 | +#db_postgres_url: "postgresql://postgres:postgres@localhost:5432/postgres" |
-
Please register or login to post a comment