Python的DEBUG LOG
2019-01-03 09:57:23来源:博客园 阅读 ()
一直在嵌入式行业,熟悉嵌入式的朋友都很了解嵌入式设备上DEBUG的麻烦,特别是一些缺乏断电工具和没有UI界面的设备。久而久之,开发一个新东西,首先就是要先搞定DEBUG手段。最近写了几个测试的python脚本用于跑些压力测试。找了些Python的DEBUG方法并加以处理,形成了方便使用的DEBUG手段。
其实Python的DEBUG LOG很简单很方便,相当于整辆车都做好了,就等你怎么开车了。而我们在C的嵌入式设备上,DEBUG都几乎需要自己造轮子,造车身。然而在Python中我们只需要import logging就可以了,而且这还是标准模块。无需额外的库。
每次跑LOG都可以生成以时间命令的LOG文件,这样就无需担心文件覆盖,重名,无法确认LOG开始时间等问题。可以参考的代码如下:
import time import logging log_filename=r'LOG\%s_test.log'%(time.strftime('%Y%m%d%H%M%S')) logging.basicConfig(level=logging.DEBUG, format='%(asctime)s [line:%(lineno)d] %(levelname)s %(message)s', datefmt='%Y.%m.%d %H:%M:%S',#datefmt='%a, %d %b %Y %H:%M:%S', filename=log_filename, filemode='w') def debug_trace(str): print(str)#如果需要在控制台打印的话。 logging.debug(str) debug_trace("test") logging.debug("test")
生成log文件“20190102102228_test.log”,文件中的LOG如:2019.01.02 10:22:28 [line:14] DEBUG test
但是以上的写法会有个问题,lineno将不是我们想要的,一直会是debug_trace中的行号。如果直接使用 logging.debug("test"),则lineno就会期望的实际被调用的位置的行号。
我原来在C嵌入式上的一些习惯,debug时会把当前调用的函数名,行号等打印出来。所以加强版的debug trace就是如下:
1 import time 2 import logging 3 import sys 4 5 log_filename=r'LOG\%s_test.log'%(time.strftime('%Y%m%d%H%M%S')) 6 7 logging.basicConfig(level=logging.DEBUG, 8 format='%(asctime)s %(levelname)s %(message)s', 9 datefmt='%Y.%m.%d %H:%M:%S',#datefmt='%a, %d %b %Y %H:%M:%S', 10 filename=log_filename, 11 filemode='w') 12 13 14 def debug_trace(str): 15 debug_str = sys._getframe().f_back.f_code.co_name+"() "+"Line:"+"%d"%(sys._getframe().f_back.f_lineno)+" "+str 16 print(debug_str)#如果需要在控制台打印的话。 17 logging.debug(debug_str) 18 19 def main(): 20 debug_trace("test") 21 22 main()
这样打出来的LOG就可以是: 2019.01.02 10:41:10 DEBUG main() Line:20 test
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:day3
下一篇:day 25 模块与包
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash