feat(日志): 添加分支信息到日志输出并统一日志配置

在Makefile中添加当前分支信息显示
在main.py中初始化统一日志配置
新增setup_logging函数实现日志格式统一
This commit is contained in:
Wenjie Zhang 2025-08-28 23:08:24 +08:00
parent 445db271b3
commit 64c4e8f259
3 changed files with 32 additions and 1 deletions

View File

@ -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)"

View File

@ -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")

View File

@ -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