解决logging二次封装导致输出日志的文件名和方法不对的问题

最近在做UI自动化的时候,为了方便使用自己封装了一个logger模块给测试case调用,结果发现

logging.Formatter('[%(asctime)s] - %(filename)s[line:%(lineno)d] - fuc:%(funcName)s- %(levelname)s: %(message)s')输出的文件名、行号、方法名一直是logger文件的,并没有打印出真正调用者的文件名和方法名

然后看了一下logging的源码,发现findCaller方法返回的调用者只是logging文件的调用者,二次封装logging为logger后,我们实际调用的是logger,而logging的调用者是logger,这就是日志打印不对的原因

那么我们只要把 下面这句代码判断条件改为我们自己封装的logger的文件路径即可

记得用os.path.normcase()格式化一下我们调用的封装好的logger路径,否则判断不生效,打印的日志文件名和方法名还是logger的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值