【Django | 开发】面试招聘信息网站(配置中间件记录响应耗时日志)

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
性能测试 PTS,5000VUM额度
云原生网关 MSE Higress,422元/月
简介: 【Django | 开发】面试招聘信息网站(配置中间件记录响应耗时日志)

文章目录

一、 中间件介绍

官方文档

图片.png

图片.png

图片.png

二、创建请求日志,性能日志记录中间件

  • 用于记录用户请求url 花费时间以及参数

图片.png

1. 在interview项目创建脚本performance.py

2. 添加代码

最外层函数必须接受函数get_response,必须要存在内部函数middleware以用作为中间件函数返回

import logging
import time
logger = logging.getLogger(__name__)  # 默认模块路径名
def performance_logger_middleware(get_response):
  def middleware(request):
    start_time = time.time()
    response = get_response(request)
    duration = time.time() - start_time
    # 添加到表头(可以在浏览器直接看到)
    response.headers['X-page-Duration-ms'] = int(duration * 1000)
    logger.info(f"duration: {duration} path: {request.path} parameter: {request.GET.dict()} ")
    return response
  return middleware

3. 添加到setting文件 ( 由于是处理 请求耗时,所以我们放在第一个位置)

MIDDLEWARE = [
  'interview.performance.performance_logger_middleware', # 这里
  'django.middleware.security.SecurityMiddleware',
  'django.contrib.sessions.middleware.SessionMiddleware',
  'django.middleware.common.CommonMiddleware',
  'django.middleware.csrf.CsrfViewMiddleware',
  'django.contrib.auth.middleware.AuthenticationMiddleware',
  'django.contrib.messages.middleware.MessageMiddleware',
  'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

4. 配置logger模块

添加handels处理器,和添加记录器logger

    'performance_file': {
      'formatter': 'simple',
      'level': 'INFO',
      'filename': os.path.join(BASE_DIR,'logs/performance.log'),
      'class': 'logging.FileHandler'
    }
'loggers': {
    # 默认使用loggers 没有指定则使用root
    # django 默认记录器
    'django': {
      'handlers': ['file', 'console'],
      'level': 'INFO',
      'propagate': True,
    },
    # 与logger名字一样
    'interview.performance': {
      'handlers': ['console','performance_file'],
      'propagate': False,
      'level': 'INFO',
    }
  }

5. 运行服务器

  • 刷新页面几次可以看到 日志记录成功图片.png
  • 终端也显示成功图片.png
  • 浏览器也能看到header 标头信息
    图片.png

参考文献:

git -u 参数

🤞到这里,如果还有什么疑问🤞
    🎩欢迎私信博主问题哦,博主会尽自己能力为你解答疑惑的!🎩
      🥳如果对你有帮助,你的赞是对博主最大的支持!!🥳


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
7月前
|
开发框架 JavaScript 中间件
配置中间件
【5月更文挑战第19天】
83 4
|
5月前
|
缓存 监控 中间件
中间件配置和管理问题
【7月更文挑战第14天】
78 1
|
6月前
|
JSON 监控 中间件
中间件在API请求/响应处理
【6月更文挑战第16天】
57 7
|
6月前
|
中间件 开发者 C++
Django中间件探索:揭秘中间件在Web应用中的守护角色与实战应用
Django中间件探索:揭秘中间件在Web应用中的守护角色与实战应用
|
6月前
|
JavaScript 中间件 API
中间件api响应处理
【6月更文挑战第14天】
55 5
|
6月前
|
前端开发 中间件 API
中间件API 请求和响应
【6月更文挑战第13天】
54 3
|
7月前
|
中间件 Python
中间件应用Django Middleware(Python)
【5月更文挑战第3天】中间件应用Django Middleware(Python)
86 6
中间件应用Django Middleware(Python)
|
7月前
|
存储 监控 安全
中间件应用优化持久化配置
【5月更文挑战第4天】中间件应用优化持久化配置
93 2
中间件应用优化持久化配置
|
7月前
|
消息中间件 监控 NoSQL
中间件应用合理配置内存
【5月更文挑战第4天】中间件应用合理配置内存
109 2
中间件应用合理配置内存
|
7月前
|
JavaScript 中间件 API
中间件应用请求和响应处理
【5月更文挑战第1天】中间件应用请求和响应处理
83 4
中间件应用请求和响应处理
下一篇
DataWorks