在Django中,你可以通过创建一个自定义的中间件来记录日志。以下是一个简单的示例,展示了如何创建一个中间件来记录请求和响应的信息:
-
首先,在你的Django项目中创建一个新的Python文件,例如
logging_middleware.py
。 -
在
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
- 在你的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
的文件中。
- 将你的自定义中间件添加到
settings.py
文件中的MIDDLEWARE
列表中:
MIDDLEWARE = [ # ... 'your_project_name.logging_middleware.LoggingMiddleware', # ... ]
将your_project_name
替换为你的实际项目名称。
现在,每当有请求和响应通过你的自定义中间件时,它们的信息都会被记录到django_logging.log
文件中。你可以根据需要调整日志记录器的配置,以便记录更多或更少的信息。