现象
重复写日志的情况,如下
![](http://www.xqtesting.com/file.php?pathname=201804/f_ba30679dc9cf0bee8efa81072a06da33.png&objectType=&imageSize=&extension=png)
原因
当第二次调用log的时候,根据getLogger(name)里的name获取同一个logger,而这个logger里已经有了第一次你添加的handler,第二次调用又添加了一个handler,也就是说这个logger里有了两个同样的handler,所以就会出现调用几次就会有几个handler
解决方案
在日志记录完之后removeHandler
例如:logger.removeHandler(streamhandler)
除此之外你也可以去判定下,如果logger.handlers列表为空,则添加,否则,直接去写日志,例如
if not logger.handlers:
xxxx
logger.error