写日志的handler处理
2017-09-12 本文已影响32人
一木之夏
目的:分析重复写日志的原因
1.查看logger的源码可以看出来参数handlers是个空列表
2.查看addHandler和removeHandler的源码,均会改变handlers这个变量的值
3.所以如果调用addHandler方法后没有removeHandler的话,handlers列表中的handler会越来越多,重复写日志的次数会越来越多
解决方法:
方法1: 增加handler后,使用完后需要移除handler
addHandler(handler)
...
removeHandler(handler)
方法2:通过if判断一直使用最初增加的handler
if not handlers:
addHandler(handler)