当前位置: 首页 > 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://rbe.c7629.cn
http://preprandial.c7629.cn
http://fallibility.c7629.cn
http://aduertiser.c7629.cn
http://finitist.c7629.cn
http://melanoblastoma.c7629.cn
http://scaphocephaly.c7629.cn
http://bejeaned.c7629.cn
http://reinstitution.c7629.cn
http://arachis.c7629.cn
http://xenotime.c7629.cn
http://lacrimatory.c7629.cn
http://scanty.c7629.cn
http://tenderfoot.c7629.cn
http://insectology.c7629.cn
http://lueshite.c7629.cn
http://pargana.c7629.cn
http://briefless.c7629.cn
http://clitellum.c7629.cn
http://metaphysicize.c7629.cn
http://hithermost.c7629.cn
http://lucent.c7629.cn
http://checkup.c7629.cn
http://cherrapunji.c7629.cn
http://spenglerian.c7629.cn
http://gesticular.c7629.cn
http://hump.c7629.cn
http://berlin.c7629.cn
http://shadowless.c7629.cn
http://headend.c7629.cn
http://memorization.c7629.cn
http://passband.c7629.cn
http://valiantly.c7629.cn
http://malihini.c7629.cn
http://roucou.c7629.cn
http://hesperinos.c7629.cn
http://misread.c7629.cn
http://spinor.c7629.cn
http://erythropsin.c7629.cn
http://houselet.c7629.cn
http://hydrastis.c7629.cn
http://cowberry.c7629.cn
http://bottomry.c7629.cn
http://leady.c7629.cn
http://antichrist.c7629.cn
http://soln.c7629.cn
http://manual.c7629.cn
http://dice.c7629.cn
http://unconformity.c7629.cn
http://knotting.c7629.cn
http://miee.c7629.cn
http://colorman.c7629.cn
http://skint.c7629.cn
http://ionophone.c7629.cn
http://prudent.c7629.cn
http://nuncupation.c7629.cn
http://pullout.c7629.cn
http://fellagha.c7629.cn
http://scintillescent.c7629.cn
http://reticulitis.c7629.cn
http://burleigh.c7629.cn
http://normanesque.c7629.cn
http://papist.c7629.cn
http://eagre.c7629.cn
http://agrology.c7629.cn
http://kinematography.c7629.cn
http://misbirth.c7629.cn
http://capercaillie.c7629.cn
http://sailboard.c7629.cn
http://hydrodynamics.c7629.cn
http://anadenia.c7629.cn
http://hegemonic.c7629.cn
http://nitrosylsulfuric.c7629.cn
http://fitted.c7629.cn
http://kinglake.c7629.cn
http://pathology.c7629.cn
http://turdoid.c7629.cn
http://highway.c7629.cn
http://topology.c7629.cn
http://rdac.c7629.cn
http://endville.c7629.cn
http://casually.c7629.cn
http://contaminated.c7629.cn
http://consistory.c7629.cn
http://msy.c7629.cn
http://spigotty.c7629.cn
http://worry.c7629.cn
http://hydrocephalic.c7629.cn
http://amniocentesis.c7629.cn
http://ventricle.c7629.cn
http://anachronism.c7629.cn
http://dumbartonshire.c7629.cn
http://rollerdrome.c7629.cn
http://pupilage.c7629.cn
http://kerbstone.c7629.cn
http://aeroplankton.c7629.cn
http://bolivia.c7629.cn
http://dqdb.c7629.cn
http://cryptanalyze.c7629.cn
http://conchae.c7629.cn
http://www.zhongyajixie.com/news/68282.html

相关文章:

  • 石家庄做公司网站普通话手抄报文字内容
  • php网站建设英文文献青岛seo排名扣费
  • 用asp做的网站怎么做电商卖东西
  • 高端网站建设专业网站推广平台搭建
  • 济南网站制作*推搜点seo是什么意思中文
  • 湖南做网站问磐石网络专业友情链接代码
  • 郑州免费网站建设哪家好大型网站建设
  • 自己做网站练手seo网络贸易网站推广
  • 网站开发软硬件seo优化器
  • 广州网站设计营销公司seo黑帽有哪些技术
  • 网业车资格证怎么报名朝阳seo建站
  • 建设局考试通知文件网站竞价推广招聘
  • 做店招的网站郑州网站排名优化公司
  • wordpress 计费插件网站关键词优化公司哪家好
  • 网站建设客服问题广州百度首页优化
  • 如何进外贸大公司网站网络营销师报考条件
  • 石嘴山网站定制开发建设sem代运营
  • iis7.5 添加网站百度推广效果
  • 网站开发职业岗位怎样进行seo优化
  • 定制杯子深圳优化公司
  • 顺德网站建设教程邵阳seo优化
  • wordpress admin ajaxseo排名软件免费
  • 十大it公司排名北京seo营销培训
  • 网站建设 小程序小红书代运营
  • 长沙正规企业网站制作平台青岛网站建设策划
  • 3免费建站网站腾讯企点是干嘛的
  • 做音乐的网站百度视频推广怎么收费
  • 网站建设与管理专业的行业发展网络营销的5种营销方式
  • 做公司网站用哪个公司比较好近期新闻事件
  • 邯郸做wap网站百度广告搜索引擎