项目中qpython logging模块使用问题的一些记录

    过年后在公司做终端自动化测试工具的开发,整个项目采用qpython(针对安卓平台的python解释器)执行,下面对日志打印功能开发中遇到的2个问题做一些记录。其中框架打印功能模块是二次封装python的logging模块完成的。

问题一:重复打印问题

问题描述:在qpython中,每条日志会打印2次,但同样的代码在win32平台上则不会出现。

问题原因:python中logging getLogger本来就是单例的,且二次封装的日志打印类也是单例使用的;但测试框架采用动态导入脚本的方式,logging模块莫名其妙的进行了两次导入,导致有两个logger存在,所以会看到有每条日志会重复打印2次。

解决办法:查看logging模块源码发现,logging.getLogger()获取到的对象有一个handlers的列表记录了当前的日志对象,对其进行len()的判断即可避免两次初始化logger。

问题二:打印卡死问题

项目已经运行3、4个月了,期间没有任何问题,到之后某次运行中,测试人员发现终端一个Case脚本的某个步骤要卡好几个小时,最开始以为是uiautomator的问题,后来定位了好久才发现是日志打印的问题。

           前期为方便调试,将控制台标准输出console_handl

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值