前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >【Django | 开发】中间件配置(记录响应耗时日志)

【Django | 开发】中间件配置(记录响应耗时日志)

作者头像
计算机魔术师
发布2022-08-19 19:06:30
发布2022-08-19 19:06:30
57500
代码可运行
举报
文章被收录于专栏:计算机魔术师计算机魔术师
运行总次数:0
代码可运行

🤵‍♂️ 个人主页: @计算机魔术师 👨‍💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。 🌐 推荐一款找工作神器网站: 宝藏网站 |笔试题库|面试经验|实习招聘内推|

该文章收录专栏—【Django | 项目开发】从入门到上线 专栏—

文章目录

一、 中间件介绍

官方文档

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

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

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

2. 添加代码

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

代码语言:javascript
代码运行次数:0
复制
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文件 ( 由于是处理 请求耗时,所以我们放在第一个位置)

代码语言:javascript
代码运行次数:0
复制
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

代码语言:javascript
代码运行次数:0
复制
		'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. 运行服务器

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

参考文献:

git -u 参数

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/08/17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、 中间件介绍
  • 二、创建请求日志,性能日志记录中间件
    • 1. 在interview项目创建脚本performance.py
    • 2. 添加代码
    • 3. 添加到setting文件 ( 由于是处理 请求耗时,所以我们放在第一个位置)
    • 4. 配置logger模块
    • 5. 运行服务器
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档