1.在setting文件中配置
# 日志文件夾路徑
LOG_PATH = os.path.join(BASE_DIR, 'logs')
# 配置日志
LOGGING = {
# 必須是1
'version': 1,
# 默認為True,禁用日志
'disable_existing_loggers': False,
# 定義formatters組件,定義存儲日志中的格式
'formatters': {
'default': {
# 記錄的級別 記錄器名字(在那個模塊使用) 日期和時間 記錄信息
'format': '%(levelno)s %(name)s %(asctime)s %(message)s'
}
},
# 定義logger組件,用于接收日志信息
# 并且將日志信息丟給handlers去處理
'loggers': {
'': {
'handlers': ['console'],
'level': 'INFO'
}
},
# 定義handlers組件,寫入用戶日志信息
'handlers': {
'console': {
'level': 'INFO',
'filename': '%s/log.txt' % LOG_PATH,
'formatter': 'default',
# 日志超過一定大小徒爹,切片處理備份
'class': 'logging.handlers.RotatingFileHandler',
# 最大長度
'maxBytes': 5 * 1024 * 1024,
}
}
}
2.在項目包下創(chuàng)建應用的同級文件夾logs
image.png
3.在應用views中配置
#導包
import logging
# 獲取日志文件
logger = logging.getLogger(__name__)
# 在方法中使用,獲取info的日志文件并且返回一段話index方法
logger.info('index方法')
代碼如圖
image.png
image.png
結(jié)果(啟動服務后)
image.png
在utils文件夾middlwrare添加中間件LogMiddleware
import logging
import time
from django.utils.deprecation import MiddlewareMixin
# 日志
class LogMiddleware(MiddlewareMixin):
def process_request(self, request):
# URL到服務器的時候双戳,經(jīng)過中間件最先執(zhí)行的方法
request.init_time = time.time()
request.init_body = request.body
def process_response(self, request, response):
# 經(jīng)過中間件,最后執(zhí)行的方法
count_time = (time.time() - request.init_time) * 1000
code = response.status_code
req_body = request.init_body
res_body = response.content
# 獲取logger
logger = logging.getLogger(__name__)
msg = '%s %s %s %s' % (count_time, code, req_body, res_body)
logger.info(msg)
return response
在setting的MIDDLEWARE = [ ]中添加
'utils.middlwrare.LogMiddleware'
運行結(jié)果
image.png