跳转到主要内容

fastapi项目结构


.
├── main.py              # 主应用文件
├── config.py            # 配置文件
├── run.py               # 启动脚本
├── requirements.txt     # 项目依赖
├── .env                 # 环境变量
├── README.md            # 项目说明
├── routers/             # 路由
├── models/              # 数据模型
├── schemas/             # 数据架构  
├── repositories/        # 数据库操作
├── services/            # 业务逻辑
└── utils/               # 工具类

# common_logger.py
import logging
from multiprocessing import get_logger
import sys

COLORS = {
    "DEBUG": "\033[36m",  # cyan
    "INFO": "\033[32m",  # green
    "WARNING": "\033[33m",  # yellow
    "ERROR": "\033[31m",  # red
    "CRITICAL": "\033[35m",  # magenta
    "RESET": "\033[0m",
}


class ColorFormatter(logging.Formatter):
    def format(self, record):
        # 给 levelname 上色
        levelname = record.levelname
        record.levelname = f"{COLORS.get(levelname, '')}{levelname}{COLORS['RESET']}"
        return super().format(record)


handler = logging.StreamHandler(sys.stdout)
handler.setFormatter(
    ColorFormatter(fmt="%(asctime)s - %(name)s - %(levelname)s - %(message)s")
)

logging.basicConfig(level=logging.INFO, handlers=[handler])

# log = logging.getLogger(__name__)


def get_logger(name):
    logger = logging.getLogger(name)
    return logger