python中logging会重复写日志的问题分析

Posted xqtesting

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中logging会重复写日志的问题分析相关的知识,希望对你有一定的参考价值。

点击链接加入QQ群 522720170(免费公开课、视频应有尽有):https://jq.qq.com/?_wv=1027&k=5C08ATe

 

现象


小强python全栈自动化测试班的学员问到,会出现重复写日志的情况,如下

 

技术分享图片

原因


 

当第二次调用log的时候,根据getLogger(name)里的name获取同一个logger,而这个logger里已经有了第一次你添加的handler,第二次调用又添加了一个handler,也就是说这个logger里有了两个同样的handler,所以就会出现调用几次就会有几个handler

 

解决方案


在日志记录完之后removeHandler

例如:logger.removeHandler(streamhandler)

 

除此之外你也可以去判定下,如果logger.handlers列表为空,则添加,否则,直接去写日志,例如

 

if not logger.handlers:
    xxxx
logger.error(‘百度搜索:小强测试品牌‘)

技术分享图片

以上是关于python中logging会重复写日志的问题分析的主要内容,如果未能解决你的问题,请参考以下文章

python logging 重复写日志问题

python logging 重复写日志问题

python中使用logging模块在控制台打印日志的同时也打印log文件,但发现控制台的信息会出现重复打印

logging模块

python logging 日志

python避坑指南02——logging模块日志重复打印问题