文章目录
- 1. 在`interview`项目创建脚本`performance.py`
- 2. 添加代码
- 3. 添加到setting文件 ( 由于是处理 请求耗时,所以我们放在第一个位置)
- 4. 配置logger模块
- 5. 运行服务器
一、 中间件介绍
二、创建请求日志,性能日志记录中间件
- 用于记录用户请求url 花费时间以及参数
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. 运行服务器
- 刷新页面几次可以看到 日志记录成功
- 终端也显示成功
- 浏览器也能看到header 标头信息
参考文献:
🤞到这里,如果还有什么疑问🤞 🎩欢迎私信博主问题哦,博主会尽自己能力为你解答疑惑的!🎩 🥳如果对你有帮助,你的赞是对博主最大的支持!!🥳