美文网首页
日志文件

日志文件

作者: 她即我命 | 来源:发表于2018-09-20 10:38 被阅读22次

    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

    image.png

    3.在应用views中配置

    #导包
    import logging
    
    # 获取日志文件
    logger = logging.getLogger(__name__)
    
    # 在方法中使用,获取info的日志文件并且返回一段话index方法
    logger.info('index方法')
    
    

    代码如图


    image.png image.png

    结果(启动服务后)

    image.png

    在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'
    

    运行结果

    image.png

    相关文章

      网友评论

          本文标题:日志文件

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