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

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

🤵‍♂️ 个人主页: @计算机魔术师 👨‍💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。

🌐 推荐一款找工作神器网站: ​​牛客网🎉🎉|笔试题库|面试经验|实习招聘内推 ​​​ 还没账户的小伙伴 ​​​速速点击链接跳转牛客网登录注册​​ 开始刷爆题库,速速通关面试吧🙋‍♂️

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

@[toc]

一、 中间件介绍

​官方文档​

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

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

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

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

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

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

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 标头信息

参考文献:

​git -u 参数​

🤞在这里,如果你有任何问题,🤞🎩欢迎博客作者的私信。哦,博主们会尽力为你答疑解惑的!如果🎩🥳对你有帮助,那么你的赞扬就是对博客作者最大的支持!🥳<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/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球