在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
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
文件中。你可以根據需要調整日志記錄器的配置,以便記錄更多或更少的信息。