当前位置:   article > 正文

python 调用logging函数,函数重复打印的问题_调用时重复打印

调用时重复打印

代码:

  1. def print_log():
  2. tim = time.strftime('%Y-%m-%d',time.localtime(time.time()))
  3. logFile = str('{}.log'.format(tim))
  4. # if os.path.exists('../log/{}.log'.format(time)):
  5. # logFile = '{}.log'.format(time)
  6. logger = logging.getLogger('../LOG/{}'.format(logFile))
  7. fmt = '%(asctime)s - %(funcName)s - %(lineno)d - %(name)s - %(levelname)s -%(module)s: %(message)s'
  8. format_str = logging.Formatter(fmt)
  9. logger.setLevel(logging.INFO)
  10. sh = logging.StreamHandler()#输出到屏幕
  11. sh.setFormatter(format_str)
  12. th = handlers.TimedRotatingFileHandler(filename='../LOG/{}'.format(logFile), when='D', interval=5, encoding='utf-8')
  13. th.setFormatter(format_str)
  14. logger.addHandler(sh)
  15. logger.addHandler(th)
  16. return logger
  1. logger.handlers最初是一个空列表,执行‘logger.addHandler(sh)’添加一个‘StreamHandler’,输出一条日志
  2. 在第二次被调用时,logger.handlers已经存在一个‘StreamHandler’,再次执行‘logger.addHandler(sh)’就会再次添加一个‘StreamHandler’,此时的logger有两个‘StreamHandler’,输出两条重复的日志
  3. 在第三次被调用时,logger.handlers已经存在两个‘StreamHandler’,再次执行‘logger.addHandler(ch)’就会再次添加一个,此时的logger有三个‘StreamHandler’,输出三条重复的日志,

解决办法:及时清理(logger.handlers.clear)

  1. def print_log():
  2. tim = time.strftime('%Y-%m-%d',time.localtime(time.time()))
  3. logFile = str('{}.log'.format(tim))
  4. # if os.path.exists('../log/{}.log'.format(time)):
  5. # logFile = '{}.log'.format(time)
  6. logger = logging.getLogger('../LOG/{}'.format(logFile))
  7. logger.handlers.clear()#及时清理
  8. fmt = '%(asctime)s - %(funcName)s - %(lineno)d - %(name)s - %(levelname)s -%(module)s: %(message)s'
  9. format_str = logging.Formatter(fmt)
  10. logger.setLevel(logging.INFO)
  11. sh = logging.StreamHandler()#输出到屏幕
  12. sh.setFormatter(format_str)
  13. th = handlers.TimedRotatingFileHandler(filename='../LOG/{}'.format(logFile), when='D', interval=5, encoding='utf-8')
  14. th.setFormatter(format_str)
  15. logger.addHandler(sh)
  16. logger.addHandler(th)
  17. return logger

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/963213
推荐阅读
相关标签
  

闽ICP备14008679号