🤵♂️ 个人主页: @计算机魔术师 👨💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。
🌐 推荐一款找工作神器网站: 牛客网🎉🎉|笔试题库|面试经验|实习招聘内推 还没账户的小伙伴 速速点击链接跳转牛客网登录注册 开始刷爆题库,速速通关面试吧🙋♂️
该文章收录专栏 ✨—【Django | 项目开发】从入门到上线 专栏—✨
@[toc]
一、 中间件介绍
官方文档
二、创建请求日志,性能日志记录中间件
- 用于 *记录用户请求url 花费时间以及参数
1. 在 ​interview​
项目创建脚本 ​performance.py​
2. 添加代码
最外层函数必须接受函数 ​get_response​
,必须要存在内部函数 ​middleware​
以用作为中间件函数返回
import loggingimport timelogger = 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 标头信息
参考文献:
🤞在这里,如果你有任何问题,🤞🎩欢迎博客作者的私信。哦,博主们会尽力为你答疑解惑的!如果🎩🥳对你有帮助,那么你的赞扬就是对博客作者最大的支持!🥳<details><summary>*<font color='gray'>[En]</font>*</summary>*<font color='gray'>🤞 is here, if you have any questions, 🤞 🎩 welcome private messages from bloggers. Oh, bloggers will try their best to answer questions for you! If 🎩 🥳 is helpful to you, your praise is the greatest support for bloggers! 🥳</font>*</details>
Original: https://blog.51cto.com/u_15691039/5637301
Author: 计算机魔术师
Title: 【Django | 开发】中间件配置(记录响应耗时日志)
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/500228/
转载文章受原作者版权保护。转载请注明原作者出处!