首页 > 编程语言 >解决python封装Logging模块后,log位置显示错误的问题

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

时间:2024-09-10 21:52:40浏览次数:8  
标签:封装 log python logService 位置 Logging

引入

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

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

大概是像下面这样子:

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

表现如图所示:

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

解决方案

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

kwargs['stacklevel'] = 2


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

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

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

标签:封装,log,python,logService,位置,Logging
From: https://www.cnblogs.com/skyvip/p/18407301

相关文章

  • 【Python篇】matplotlib超详细教程-由入门到精通(下篇)
    文章目录前言第六部分:保存与导出图表6.1保存为图片文件示例:保存图表为PNG文件解释:关键点:6.2保存为高分辨率图片示例:保存为高分辨率图片解释:6.3保存为不同文件格式示例:保存为不同文件格式解释:6.4调整图表的保存尺寸示例:设置图片尺寸并保存解释:6.5解决中文乱码......
  • python爬虫连载17
    文本属性设置行高、缩进、字符间距。text-align:设置文本对齐方式,属性值取left、center、right。line-height:设置文本行高,属性值取具体数值来设置具体行高。text-indent:代表首行缩进,text-indent:100px,意思是首行缩进100个像素。letter-spacing:设置字符间距。默认是normal,字符之间没......
  • RAG与LLM原理及实践(17)---Docker Redis & Python Usage
    目录背景Redis环境download修改镜像RunRedisCodingpythonredisdownload基本使用描述完整代码运行结果高阶用法序列化的方式 Snapshot与AOF快照(RDB)AOF(Append-OnlyFile)代码总结发布与订阅描述     代码运行结果注意事项解释Transanction......
  • 第二章python基本语法
    位运算符例1:检测列表里重复元素l=[1,3,5,7,8,3,9,4,2,5,6]flag=0foriinrange(len(l)):if(1<<l[i]&flag)>0:print("重复:%d"%l[i])flag|=(1<<l[i])#flag=flag|(1<<l[i])注:flag记录已经出现过的元素,其实用对应位为1表示出现的式子例如3就用1000表示当前数字......
  • 《在 Windows 系统中配置 Python 3.11 环境安装教程》
    一、引言Python是一种广泛使用的高级编程语言,具有简洁、易读、可扩展性强等特点。Python3.11是Python的一个重要版本,带来了许多新的特性和改进。本文将详细介绍在Windows系统中配置Python3.11环境的步骤,帮助读者快速搭建Python开发环境。二、安装前的准备(一......
  • Python数据结构集合的相关介绍
    集合是一种无序、可变的数据结构,它也是一种变量类型,集合用于存储唯一的元素。集合中的元素不能重复,并且没有固定的顺序。在Python提供了内置的 set 类型来表示集合,所以关键字set就是集合的意思。你可以使用大括号 {} 或者 set() 函数来创建一个集合。my_set={1,2,......
  • python进行检测机器的显卡是否正常
    `importsounddeviceassdimportrequestsimportsocketimportjsonWebhookURLwebhook_url='换成自己的webhook'Checksoundcarddefcheck_sound_card():devices=sd.query_devices()sound_card_found=any(device['max_input_channels']>......
  • Python进行监控文件
    `--coding:utf-8--@Time:2024/3/110:02@Author:Rohing@File:监控文件.py@Software:PyCharm`importtimeimportloggingimportfnmatchfromwatchdog.observersimportObserverfromwatchdog.eventsimportFileSystemEventHandlerlogger=logging.......
  • pyarmor一个保护 Python代码的库!
    大家好,今天为大家分享一个超级厉害的Python库-pyarmor。 Python是一种广泛使用的高级编程语言,但其源代码往往容易被反编译或盗用,这对于一些商业软件或关键代码的保护构成了挑战。PyArmor是一个专门用于保护Python代码的工具,它可以对Python脚本进行加密、混淆和授权......
  • python的模型二维码识别
    可以同时识别到多个二维码直接上代码importcv2importnumpyasnpimportpyautoguifrompyzbar.pyzbarimportdecodefromcv2.wechat_qrcodeimportWeChatQRCode#自定义区域的坐标和大小region=(1024,0,900,500)#替换为你想要的区域#设置要显示的窗......