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文件下

上一篇下一篇

猜你喜欢

热点阅读