FastAPI 中日志的配置
在Python中内置了logging模块, 但是配置有丢丢麻烦。
于是有人开发了这样的一个日志扩展库loguru
loguru 使用
或者GitHub README.md的演示,基本就够了
集成到FastAPI
本来是想 像flask那样把日志对象挂载到app对象上,作者建议直接使用全局对象
所以了,我是在项目中,直接新建了一个文件夹extensions/专门存放扩展文件
然后在文件目录下创建了extensions/logger.py文件, 简单配置
import os
import time
from loguru import logger
basedir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
# print(f"log basedir{basedir}") # /xxx/python_code/FastAdmin/backend/app
# 定位到log日志文件
log_path = os.path.join(basedir, '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')
# 日志简单配置
# 具体其他配置 可自行参考 https://github.com/Delgan/loguru
logger.add(log_path_error, rotation="12:00", retention="5 days", enqueue=True)
日志小技巧
使用官方内置的库traceback能帮你更加详细的打印错误栈。
import traceback
logger.error(traceback.format_exc())
对应GitHub地址