From 64c4e8f259263b527f1fc370753c44f55c0d29c5 Mon Sep 17 00:00:00 2001 From: Wenjie Zhang Date: Thu, 28 Aug 2025 23:08:24 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=97=A5=E5=BF=97):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=88=86=E6=94=AF=E4=BF=A1=E6=81=AF=E5=88=B0=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E8=BE=93=E5=87=BA=E5=B9=B6=E7=BB=9F=E4=B8=80=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在Makefile中添加当前分支信息显示 在main.py中初始化统一日志配置 新增setup_logging函数实现日志格式统一 --- Makefile | 1 + server/main.py | 4 +++- server/utils/common_utils.py | 28 ++++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 4262f15c..22fb64b4 100644 --- a/Makefile +++ b/Makefile @@ -9,5 +9,6 @@ stop: logs: @docker logs --tail=50 api-dev + @echo "\n\nBranch: $$(git branch --show-current)" @echo "Commit ID: $$(git rev-parse HEAD)" @echo "System: $$(uname -a)" diff --git a/server/main.py b/server/main.py index bfcc41db..d6e76bac 100644 --- a/server/main.py +++ b/server/main.py @@ -7,8 +7,10 @@ from starlette.middleware.base import BaseHTTPMiddleware from server.routers import router from server.utils.auth_middleware import is_public_path -from src.utils.logging_config import logger +from server.utils.common_utils import setup_logging +# 设置日志配置 +setup_logging() app = FastAPI() app.include_router(router, prefix="/api") diff --git a/server/utils/common_utils.py b/server/utils/common_utils.py index 5a19a855..94791e00 100644 --- a/server/utils/common_utils.py +++ b/server/utils/common_utils.py @@ -1,10 +1,38 @@ """通用工具函数""" +import logging from sqlalchemy.orm import Session from fastapi import Request from server.models.user_model import User, OperationLog +def setup_logging(): + """配置应用程序日志格式""" + # 配置日志格式 + logging.basicConfig( + level=logging.INFO, + format="%(asctime)s %(levelname)s: %(message)s", + datefmt="%Y-%m-%d %H:%M:%S", + force=True + ) + + # 确保uvicorn的日志也使用相同格式 + uvicorn_logger = logging.getLogger("uvicorn") + uvicorn_access_logger = logging.getLogger("uvicorn.access") + + # 创建格式化器 + formatter = logging.Formatter( + fmt="%(asctime)s %(levelname)s: %(message)s", + datefmt="%m-%d %H:%M:%S" + ) + + # 为所有处理器设置格式化器 + for handler in uvicorn_logger.handlers: + handler.setFormatter(formatter) + for handler in uvicorn_access_logger.handlers: + handler.setFormatter(formatter) + + def log_operation(db: Session, user_id: int, operation: str, details: str = None, request: Request = None): """记录用户操作日志""" ip_address = None