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

引入

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

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

大概是像下面这样子:

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

表现如图所示:

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

解决方案

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

kwargs['stacklevel'] = 2


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

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

[解决python封装Logging模块后,log位置显示错误的问题]( https://blog.csdn.net/qq_34026204/article/details/125810425#:~:text=看到这里,我们已经可以回答最初的问题了:如何解决log位置显示错误的问题? 答案就是,我们只需要将stacklevel设置为2即可,这样就会再往上一层,追踪到调用logService.error ()的地方,而不是调用logging.error ,%28%29%E7%9A%84%E4%BD%8D%E7%BD%AE%E3%80%82%20%E6%88%91%E4%BB%AC%E5%8F%AA%E9%9C%80%E8%A6%811%E8%A1%8C%E4%BB%A3%E7%A0%81%E5%8D%B3%E5%8F%AF%E5%BA%94%E7%94%A8%E6%9B%B4%E6%94%B9%EF%BC%9A%20%E6%9B%B4%E6%94%B9%E5%90%8E%EF%BC%8C%E6%83%85%E5%86%B5%E5%A6%82%E4%B8%8B%E6%89%80%E7%A4%BA%EF%BC%8C%E8%B0%83%E7%94%A8logService.error%20%28%29%E7%9A%84%E4%BD%8D%E7%BD%AE%E8%A2%AB%E6%AD%A3%E7%A1%AE%E7%9A%84%E6%98%BE%E7%A4%BA%E4%BA%86%E5%87%BA%E6%9D%A5%E3%80%82)

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