log日志重复打印 修改

最近把接口自动化的框架做了一个全新的编写,2.0版本功能更强大了,不过在运行的时候log位置出现了使用log会重复打印

调用一次log输出一次,调用两次log输出两次,依次类推,这个事情着实让我头疼了一阵

后来进多方查找并咨询其他人找到了,

最开始是这样写的

这样书写的时候就会出现每次调用就会重复打印,原因:

  1. logger.handlers最初是一个空列表,执行‘logger.addHandler(ch)’添加一个‘StreamHandler、FileHandler’,输出一条日志
  2. 在第二次被调用时,logger.handlers已经存在一个‘StreamHandler’,再次执行‘logger.addHandler(ch)’就会再次添加一个‘StreamHandler’,此时的logger有两个‘StreamHandler’,输出两条重复的日志
  3. 在第三次被调用时,logger.handlers已经存在两个‘StreamHandler’,再次执行‘logger.addHandler(ch)’就会再次添加一个,此时的logger有三个‘StreamHandler’,输出三条重复的日志

所以解决的办法就是在console函数中,创建handlers前面加一个判断,如果有则不新添加一个handlers

 ,这样在调用log函数时,就不会出现重复打印的情况。

原文地址:https://www.cnblogs.com/Jaredhan/p/13409539.html