当前位置: 首页 > 后端技术 > Python

Python自制的简单实用的日志装饰器

时间:2023-03-26 19:16:05 Python

在写代码的时候经常会漏掉日志记录的关键因素,导致函数使用时出错却无法追溯。其实我们只需要写一个非常简单的日志装饰器,就可以大大提高排错的效率。1.简单装饰器编写装饰器非常简单,因为装饰器本质上是一个返回函数的“高阶”函数:1)函数作为参数传入装饰器。2)在装饰器中定义一个函数来处理作为参数传入的函数。3)返回这个装饰器中定义的函数**试试看:效果如下:虽然这样可以实现我们需要的功能,但其实还有很大的优化空间。2.装饰器普通版第一版代码有明显问题。装饰器中定义的处理函数不支持kwargs,在装饰器中支持kwargs只是费力的事情。第二个问题是在生成时间戳的时候采用了字符串截取的形式,过于粗糙。其实可以用strftime来做字符串转换。修改如下:貌似优化的差不多了,但是还有改进的空间。3.装饰器的优化版本在前两个版本的代码中,我们使用print进行日志输出。事实上,这种处理日志的方式并不标准。使用logging模块来控制日志输出是更好的选择。为了使用logging模块来记录日志,我们需要先配置logging相关的选项。1)首先生成一个logger并配置日志级别:2)配置日志格式并添加一个handler来控制输出流:这里可以设置handler需要处理的日志级别。如果不设置,默认使用logger自身的Level,即DEBUG级别。3)最后在logger中添加这个handler:logging的完整配置如下:使用起来很简单,将print换成logger.debug即可:效果如下:这样一个比较完整的日志装饰器完成了。附上常用的日志级别配置:以上就是本次分享的全部内容。觉得文章还不错的话,请关注公众号:Python编程学习圈,每日干货分享,发送“J”还能收到大量学习资料,内容涵盖Python电子书、教程、数据库编程、Django、爬虫、云计算等。或者去编程学习网了解更多编程技术知识。