当前位置: 首页 > news >正文

武汉专业做网站公司个人网页制作

武汉专业做网站公司,个人网页制作,东莞微信网站建设,wordpress点击弹窗插件FastAPI Vue3 自动化测试平台(2)-- 日志中间件 前言 在开发和运行自动化测试平台时,日志功能是至关重要的一部分。日志不仅能帮助我们快速定位和解决问题,还能作为平台运行的记录依据,为后续分析和优化提供参考。 …

FastAPI + Vue3 自动化测试平台(2)-- 日志中间件

前言

在开发和运行自动化测试平台时,日志功能是至关重要的一部分。日志不仅能帮助我们快速定位和解决问题,还能作为平台运行的记录依据,为后续分析和优化提供参考。

在本篇文章中,我们将介绍如何为 FastAPI 构建一个日志中间件,记录请求日志、错误日志和系统运行日志等关键信息,从而提升系统的可维护性和可观测性。


为什么需要日志中间件?

在一个完整的测试平台中,日志系统主要承担以下功能:

  1. 记录 API 请求日志:包括请求的时间、URL、方法、参数、响应时间等信息,便于排查问题。
  2. 捕获错误日志:记录后端的异常和错误,为开发者提供调试依据。
  3. 记录系统运行日志:包括任务执行、关键操作、资源使用情况等,为系统优化提供数据支持。
  4. 结构化日志输出:输出 JSON 格式的日志,便于后续存储和分析。

日志中间件的实现

1. 安装依赖

我们将使用 Python 的 loguru 库来实现日志功能。它简单易用,功能强大。

安装 loguru

pip install loguru

2.编写日志中间件代码

"""日志中间件."""
import json
import os
import sys
from datetime import datetime, timedelta, timezone
from fastapi import Response
from loguru import logger
from starlette.middleware.base import BaseHTTPMiddleware
from starlette.requests import Requestclass Logger_Middleware(BaseHTTPMiddleware):"""日志类."""async def dispatch(self, request: Request, call_next) -> Response:"""重写dispatch方法.Args:request (Request): Request.call_next (_type_): 回调函数.Returns:Response: Response."""self.logger = loggermethod = request.method# body = await request.body()  # 请求体,预留坑位path = request.scope["path"]http_type = request.scope["type"]china_tz = timezone(timedelta(hours=8), "China")current_time_china = datetime.now(china_tz)formatted_time = current_time_china.strftime("%Y-%m-%d")response = await call_next(request)self.logger.remove()code = response.status_codeINFO = f"{code}__{method}__{path}"# 判断请求的响应结果,然后写入log文件if code != 200:log_path = os.path.join("./log/error", f"{formatted_time}_error.log")self.logger.add(log_path,encoding='utf-8',rotation="7 days",enqueue=True)self.logger.error(INFO)else:log_path = os.path.join("./log/info", f"{formatted_time}_info.log")self.logger.add(log_path,encoding='utf-8',rotation="7 days",enqueue=True)self.logger.info(INFO)return response

3.注册到fastapi的服务中

from fastapi import FastAPI
from middlewares.logging_middleware import LoggingMiddleware# 初始化 FastAPI 应用
app = FastAPI()# 添加日志中间件
app.middleware("http")(LoggingMiddleware())

4.日志输出示例

2024-10-30 10:21:52.452 | INFO     | middleware.log_middleware:dispatch:54 - 200__POST__/user/login
2024-10-30 10:23:43.225 | INFO     | middleware.log_middleware:dispatch:54 - 200__POST__/user/login
2024-10-30 10:26:30.461 | INFO     | middleware.log_middleware:dispatch:54 - 200__POST__/user/login
2024-10-30 10:30:21.039 | INFO     | middleware.log_middleware:dispatch:54 - 200__POST__/user/login
2024-10-30 10:47:38.788 | INFO     | middleware.log_middleware:dispatch:54 - 200__POST__/user/login
2024-10-30 10:47:51.864 | INFO     | middleware.log_middleware:dispatch:54 - 200__POST__/user/login
2024-10-30 10:48:51.512 | INFO     | middleware.log_middleware:dispatch:54 - 200__POST__/user/login
2024-10-30 10:49:47.051 | INFO     | middleware.log_middleware:dispatch:54 - 200__POST__/user/login
2024-10-30 10:49:50.098 | INFO     | middleware.log_middleware:dispatch:54 - 200__POST__/user/login
2024-10-30 10:53:17.336 | INFO     | middleware.log_middleware:dispatch:54 - 200__POST__/user/login
2024-10-30 10:53:36.034 | INFO     | middleware.log_middleware:dispatch:54 - 200__POST__/user/login
2024-10-30 10:54:30.589 | INFO     | middleware.log_middleware:dispatch:54 - 200__POST__/user/login
http://www.shuangfujiaoyu.com/news/9055.html

相关文章:

  • 有没有做3d衣服模型网站广东网络优化推广
  • 网站怎么加关键词5118数据分析平台
  • 建一个交易网站需要多少钱做一个私人网站需要多少钱
  • 美国有个网站专门做sm中国足球世界排名
  • 做网站UI说不会写文案北京百度关键词排名
  • 向百度提交网站百度广告位价格
  • 深圳企业营销型网站百度竞价排名模式
  • 浏览器正能量不良网站产品推广外包
  • 手机英文网站广告网址
  • 深圳建筑设计找工作哪个招聘网站搜索广告和信息流广告区别
  • 域名 wordpress新手如何学seo
  • 怎么做织梦网站营业推广是一种什么样的促销方式
  • 学校的网站怎么做阿里云云服务平台
  • 天津市网站制作建设推广公司站长统计app进入网址
  • 江苏建设部网站网络营销推广的
  • 上传本地wordpress至网络服务器大连seo优化
  • 制作公司网站 黑龙江顾问
  • 上上海网站设计建设wordpress
  • dede 做手机网站微信营销管理软件
  • 班级网站建设步骤杭州网站优化搜索
  • 哈尔滨网站建设制作费用世界互联网峰会
  • 旅游网站开发网站服务器失去响应
  • 个人网站子域名设置b站新人视频怎么推广
  • 微信小程序认证入口seo企业站收录
  • 彩票系统开发搭建彩票网站服务器安全怎么做中国关键词官网
  • 福州网站建设福州站建设关键词优化到首页怎么做到的
  • 网站建设建站百度官网电话客服24小时
  • 哪里有网站建设官网北京网站建设公司报价
  • 东莞网站建设 石化搜索引擎有哪些分类
  • org已经备案的网站seo站长论坛