解决python封装Logging模块后,log位置显示错误的问题

引入

今天由于项目需要,要将logging库二次封装成一个类,以实现一些自定义的功能。

我将二次封装了一个logService类,然后在其中同样也实现info, warn, error等日志函数。额外加了一个将日志存入数据库的功能。

大概是像下面这样子:

但是在封装的过程中,出现了一个问题:log中,不能正确显示打日志的地方的代码位置了。

表现如图所示:

我们希望打log的时候显示的代码位置是出错的地方的位置,但是这里显示的是logService类中的代码位置。这该怎么办呢?

解决方案

我们只需要1行代码即可应用更改:

kwargs['stacklevel'] = 2


更改后,情况如下所示,调用logService.error()的位置被正确的显示了出来。

原文,原文包含跟踪源代码的过程

解决python封装Logging模块后,log位置显示错误的问题

posted @ 2024-09-10 21:56  Excel2016  阅读(82)  评论(0)    收藏  举报