美文网首页
Django配置日志文档

Django配置日志文档

作者: 有趣的恶魔QAQ | 来源:发表于2019-08-28 16:58 被阅读0次
    一、新建文档

    在项目文件下新建一个名为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文件下

    相关文章

      网友评论

          本文标题:Django配置日志文档

          本文链接:https://www.haomeiwen.com/subject/cvgnvqtx.html