Django配置日志文档
2019-08-28 本文已影响0人
有趣的恶魔QAQ
一、新建文档
在项目文件下新建一个名为logs的文件夹。
二、日志配置
setting文件下设置logs路径
LOG_PATH = os.path.join(BASE_DIR, 'logs')
LOGGING = {
'version': 1,
# 禁用日志
'disable_existing_loggers': False,
'loggers': {
'': {
# 将系统接受到的体制,交给handler去处理
'handlers': ['console'],
'level': 'INFO',
}
},
'handlers': {
'console': {
# handler将日志信息存放在day6/logs/sys.log
'filename': '%s/%s' % (LOG_PATH, 'sys.log'),
'level': 'INFO',
# 指定日志的格式
'formatter': '',
# 备份
'class': 'logging.handlers.RotatingFileHandler',
# 日志文件大小:5M
'maxBytes': 5 * 1024 * 1024
}
},
'formatters': {
'default': {
'format': '%(asctime)s %(message)s'
}
}
}
三、编写日志中间件
在工具集utils下新建LogMiddleware.py文件
import time
from django.utils.deprecation import MiddlewareMixin
# 获取日志logger
import logging
logger = logging.getLogger(__name__)
class LogMiddle(MiddlewareMixin):
# 日志处理中间件
def process_request(self, request):
# 存放请求过来时的时间
request.init_time = time.time()
return None
def process_response(self, request, response):
try:
# 请求响应时,耗时时长
total_time = time.time() - request.init_time
# 请求路径
path = request.path
# 请求方式
method = request.method
# 响应状态码
status_code = response.status_code
# 响应内容
content = response.content
# 记录信息
message = '%s %s %s %s %s' % (total_time, path, method, status_code, content)
logger.info(message)
except:
logger.critical('系统错误')
return response
然后将中间件('utils.LogMiddleware.LogMiddle')添加到setting文件下