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.在项目包下创建应用的同级文件夹logs
3.在应用views中配置
#导包
import logging
# 获取日志文件
logger = logging.getLogger(__name__)
# 在方法中使用,获取info的日志文件并且返回一段话index方法
logger.info('index方法')
代码如图
结果(启动服务后)
在utils文件夹middlwrare添加中间件LogMiddleware
import logging
import time
from django.utils.deprecation import MiddlewareMixin
# 日志
class LogMiddleware(MiddlewareMixin):
def process_request(self, request):
# URL到服务器的时候,经过中间件最先执行的方法
request.init_time = time.time()
request.init_body = request.body
def process_response(self, request, response):
# 经过中间件,最后执行的方法
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'