Django中间件如何记录日志

avatar
作者
猴君
阅读量:0

在Django中,你可以通过创建一个自定义的中间件来记录日志。以下是一个简单的示例,展示了如何创建一个中间件来记录请求和响应的信息:

  1. 首先,在你的Django项目中创建一个新的Python文件,例如logging_middleware.py

  2. logging_middleware.py文件中,编写以下代码:

import logging from django.http import HttpRequest  logger = logging.getLogger(__name__)  class LoggingMiddleware:     def __init__(self, get_response):         self.get_response = get_response      def __call__(self, request: HttpRequest):         # 在请求处理之前记录日志         logger.info(f"Request: {request.method} {request.path}")          response = self.get_response(request)          # 在请求处理之后记录日志         logger.info(f"Response: {response.status_code}")          return response 
  1. 在你的Django项目的settings.py文件中,配置日志记录器。例如:
LOGGING = {     'version': 1,     'disable_existing_loggers': False,     'formatters': {         'verbose': {             'format': '{levelname} {asctime} {module} {message}',             'style': '{',         },     },     'handlers': {         'file': {             'level': 'INFO',             'class': 'logging.FileHandler',             'filename': 'django_logging.log',             'formatter': 'verbose',         },     },     'loggers': {         'django': {             'handlers': ['file'],             'level': 'INFO',             'propagate': True,         },     }, } 

这将配置日志记录器将日志记录到名为django_logging.log的文件中。

  1. 将你的自定义中间件添加到settings.py文件中的MIDDLEWARE列表中:
MIDDLEWARE = [     # ...     'your_project_name.logging_middleware.LoggingMiddleware',     # ... ] 

your_project_name替换为你的实际项目名称。

现在,每当有请求和响应通过你的自定义中间件时,它们的信息都会被记录到django_logging.log文件中。你可以根据需要调整日志记录器的配置,以便记录更多或更少的信息。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!