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

avatar
作者
筋斗云
阅读量:3

我们要搭建日志系统,可以使用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文件夹不存在会自动创建该文件夹

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

再看下文件中的输出:

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

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!