最近把接口自动化的框架做了一个全新的编写,2.0版本功能更强大了,不过在运行的时候log位置出现了使用log会重复打印
调用一次log输出一次,调用两次log输出两次,依次类推,这个事情着实让我头疼了一阵
后来进多方查找并咨询其他人找到了,
最开始是这样写的
这样书写的时候就会出现每次调用就会重复打印,原因:
logger.handlers
最初是一个空列表,执行‘logger.addHandler(ch)’添加一个‘StreamHandler、FileHandler’,输出一条日志- 在第二次被调用时,
logger.handlers
已经存在一个‘StreamHandler’,再次执行‘logger.addHandler(ch)’就会再次添加一个‘StreamHandler’,此时的logger有两个‘StreamHandler’,输出两条重复的日志 - 在第三次被调用时,
logger.handlers
已经存在两个‘StreamHandler’,再次执行‘logger.addHandler(ch)’就会再次添加一个,此时的logger有三个‘StreamHandler’,输出三条重复的日志
所以解决的办法就是在console函数中,创建handlers前面加一个判断,如果有则不新添加一个handlers
,这样在调用log函数时,就不会出现重复打印的情况。