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

武汉专业做网站公司杭州营销策划公司排名

武汉专业做网站公司,杭州营销策划公司排名,广告网站怎么建设,望城区建设局网站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.dinnco.com/news/61559.html

相关文章:

  • 我找客户做网站怎么说网店网络推广方案
  • 设计官网有哪些seo品牌
  • 上海网站设计首选刻seo快速排名源码
  • 免费ppt模板 网站开发seo网站推广的主要目的不包括
  • wordpress303合肥seo公司
  • 推广企业网站最主要的方式想开个网站怎样开
  • 泰安有哪些大学鹤壁seo
  • 海南建设培训网站湖南专业关键词优化
  • 如何用天地图做网站营销推广投放平台
  • 怎样网站制作设计seo技术外包 乐云践新专家
  • 企业网站做app100个关键词
  • 小公司网站如何做怎么在百度上发广告
  • 网站建设需求原型百度推广外包哪家不错
  • 无忧网站建设服务2021百度热搜年度榜
  • 日用品企业网站建设关键词排名优化易下拉排名
  • 网站可以做外部链接吗seo什么意思中文意思
  • 利于seo优化的网站深圳seo推广培训
  • 网站建设企业网站制作舆情通
  • 国内网站建设代理百度关键词查询排名
  • 做网站策划师的图片建网站赚钱
  • 网站模板怎么弄婚恋网站排名前三
  • 肃宁县做网站搭建网站流程
  • 邢台疫情解封最新消息湛江百度seo公司
  • 网站 会员系统 织梦百度指数平台官网
  • 环境搭建好了wordpress怎么建设湖南seo排名
  • 免费制作app软件教程网站关键词排名优化推广软件
  • 查询网站死链接搜索引擎关键词排名优化
  • 怎么做能够让网站流量大360网站推广
  • 洪梅网站建设哪里能搜索引擎优化
  • 唐山网站建设最好的怎么制作seo搜索优化