自学内容网 自学内容网

FastAPI 学习之路(六十)打造系统的日志输出

我们要搭建日志系统,可以使用loguru,很不错的一个开源日志系统

pip install loguru

我们在common创建log.py,使用方式也很简单

import os
import time

from loguru import logger

# 日志的路径
log_path = os.path.join(os.getcwd(), "logs")
if not os.path.exists(log_path):
    os.mkdir(log_path)

# 日志输出格式
log_path_error = os.path.join(log_path, f"{time.strftime('%Y-%m-%d')}_error.log")

logger.add(log_path_error, rotation="12:00", retention="5 days", enqueue=True)

使用起来也很简单

from common.log import logger

def create_user_method(db: Session, user: UserModel):
    logger.info("创建用户开始了")
    db_user = db.query(User).filter(User.email == user.email).first()
    if db_user:
        logger.info(f"用户:{user.email}已经存在了!")
        return response(code=1, message="error", data="this user already exists")
    from routers.users import get_password_hash
    hashed_password = get_password_hash(user.password)
    init_user = User(email=user.email, hashed_password=hashed_password)
    db.add(init_user)
    db.commit()
    db.refresh(init_user)
    logger.info("创建用户成功了")
    return resp_200(data={"user": init_user.email})

启动后,如果logs文件夹不存在会自动创建该文件夹

看下请求的输出:(控制台中日志输出的颜色根据你使用的类型不同,对应的日志颜色也不同)

再看下文件中的输出:

也是按照固定的格式给我们输出的,还包含了我们是在哪一行输出的,什么方法中,方便我们后续的排查问题。


原文地址:https://blog.csdn.net/myli_binbin/article/details/140524323

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!