zoukankan      html  css  js  c++  java
  • logging模块日志重复打印问题

    小问题解析

      今天练习中间件时 出现的小问题,分享一下,代码简陋,凑合看吧

      longgin 打印时 第一次打印一次日志 第二次打印两次日志,逐次递增 

    from django.utils.deprecation import MiddlewareMixin
    import logging
    lis =[]
    
    class Middlel(MiddlewareMixin):
    
        def process_request(self,request):
            lis.append(request.META)
            for i in lis:
                log = i['HTTP_USER_AGENT']
    
            logger = logging.getLogger()
            logger.setLevel(logging.INFO)
            fh = logging.FileHandler("1.log")
            fh.setLevel(logging.DEBUG)
    
    
            formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] "
                                          "- %(levelname)s: %(message)s")
            fh.setFormatter(formatter)
            logger.addHandler(fh)
            logger.critical(log)

    更改后的代码 

    from django.utils.deprecation import MiddlewareMixin
    import logging
    lis =[]
    logger = logging.getLogger()
    logger.setLevel(logging.INFO)
    fh = logging.FileHandler("1.log")
    fh.setLevel(logging.DEBUG)
    class Middlel(MiddlewareMixin):
    
        def process_request(self,request):
            lis.append(request.META)
            for i in lis:
                log = i['HTTP_USER_AGENT']
    
    
            formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] "
                                          "- %(levelname)s: %(message)s")
            fh.setFormatter(formatter)
            logger.addHandler(fh)
            logger.critical(log)

    将 实例化个对象 设定对象等级  写入那个文件  写入文件时触发的等级 四句话 挪到类上边就行。 

  • 相关阅读:
    Vue 服务器端渲染(一)
    vue笔记 介绍及安装 一
    Node.js 学习笔记 (一) 安装配置
    Java开发中的23种设计模式详解(转)
    spring-boot整合ehcache实现缓存机制
    STM32流水灯
    SD卡封转及管脚说明
    随笔分类
    函数的设计之我见
    让灵魂追得上我们疲惫的身体
  • 原文地址:https://www.cnblogs.com/qiang-qiang/p/9910631.html
Copyright © 2011-2022 走看看