在开发过程中,经常会遇到无法在本地环境完成联调测试,需要在统一的线上环境对接其他系统测试的情况。往往因为一个BUG,很难及时找到数据记录,定位到错误发生的位置。[阅读全文]遇到这种情况,可能是一个简单的BUG引起的,但是往往需要很长时间才能定位问题。python编程中推荐使用非标准库tabulate,它可以将程序运行过程中产生的数据记录格式化并打印出来,非常方便我们定位问题。结合简单日志非标准库loguru,可以快速打印出美观实用的日志记录。其实在一些文章的源码示例中已经使用了loguru非标准库。安装过程还是直接通过pip安装。由于loguru和tabulate是python的非标准库,没有安装的需要安装。默认我们都是使用清华大学的python镜像站,你可以选择其他的镜像站。pipinstallloguru-ihttps://pypi.tuna.tsinghua.edu.cn/simple/pipinstalltabulate-ihttps://pypi.tuna.tsinghua.edu.cn/simple/准备工作完成后,loguru,tabulate模块导入就OK了,没有其他复杂的操作!#默认配置创建logger的快捷方式。fromloguruimportlogger#是从模块`tabulate`中导入函数`tabulate`。fromtabulateimporttabulate关于非标准库tabulate,其实有很多打印模式,可能有几种是我们平时常用的。下面列出了表格的所有打印方式,需要的可以参考。'''"plain""simple""github""grid""fancy_grid""pipe""orgtbl""jira""presto""psql""rst""mediawiki""moinmoin""youtrack""html""latex""latex_raw""latex_booktabs""textile"'''我们选择其中一种'grid'模式看看效果如何,因为这种模式打印的数据记录比较普遍。下面创建一个函数tab_grid_log,以数组的形式打印一条数据记录。deftab_grid_log():""">此函数获取一个列表列表并返回一个列表列表,其中包含每个元素的日志"""#它定义了表的标题。header=[u'name',u'age',u'class',u'grade',u'performance']#它定义了一个列表列表。table=[('Python',20,1710,98,5.0),('Java',22,1810,98,4.9)]#它以`grid`格式打印表格。logger.info(tabulate(table,headers=header,tablefmt='grid'))tab_grid_log()#2022-09-1718:33:00.472|信息|__main__:tab_grid_log:66-+--------+--------+------+------+--------+#|名称|年龄|类|等级|性能|#+========+========+========+========+========+#|蟒蛇|20|1710|98|5|#+--------+--------+--------+--------+--------+#|爪哇|22|1810|98|4.9|#+--------+--------+--------+--------+--------+##Processfinishedwithexitcode0使用网格模式打印数据记录即网格形式非常方便查找日志中的数据记录,也我们在日志记录中经常使用的一种打印方法。接下来,我们选择一种模式再次打印。这里我们选择html模式看看效果。我以前从未使用过这种模式。我很好奇它会打印出什么。这样的效果。deftab_html_log():""">此函数获取日志文件并返回日志文件的html表格"""#它定义了表格的标题。header=[u'姓氏',u'年龄',u'班级',u'成绩',u'表现']#定义一个列表列表。table=[('Python',20,1710,98,5.0),('Java',22,1810,98,4.9)]#它以`html`格式打印表格。logger.info(tabulate(table,headers=header,tablefmt='html'))tab_html_log()#2022-09-1718:37:50.383|信息|__main__:tab_html_log:87-
名字 | |
---|---|
Python | 5 |
Java |