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)

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

  • 相关阅读:
    OC面向对象—封装
    OC内存管理
    OC方法和文件编译
    OC语言基础知识
    OC语言前期准备
    C语言指针基础
    C语言字符串
    C语言数组
    C语言内存分析
    C语言函数
  • 原文地址:https://www.cnblogs.com/qiang-qiang/p/9910631.html
Copyright © 2011-2022 走看看