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)

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

  • 相关阅读:
    python技巧31[移植python2.x到3.x]
    python转载[正则表达式指南]
    Linux守护进程(init.d和xinetd)
    系统host文件的使用
    python技巧31[python文件的encoding和str的decode]
    python类库26[读写mysql]
    Windows批处理中文件的属性
    python类库31[读取环境变量]
    python基础31[python内置函数列表]
    文件共享和存储服务器
  • 原文地址:https://www.cnblogs.com/qiang-qiang/p/9910631.html
Copyright © 2011-2022 走看看