一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python自制簡單實用的日志裝飾器

Python自制簡單實用的日志裝飾器

2021-07-28 00:50菜鳥學Python Python

在寫代碼的時候,往往會漏掉日志這個關鍵因素,導致功能在使用的時候出錯卻無法溯源。其實,只需要寫一個非常簡單的日志裝飾器,我們就能大大提升排查問題的效率。

在寫代碼的時候,往往會漏掉日志這個關鍵因素,導致功能在使用的時候出錯卻無法溯源。

其實,只需要寫一個非常簡單的日志裝飾器,我們就能大大提升排查問題的效率。

1.簡陋版裝飾器

 

寫一個裝飾器非常簡單,因為本質上裝飾器就是一個返回函數的“高階”函數而已:

1) 函數作為參數傳遞進裝飾器。

2) 裝飾器內定義一個函數,處理作為參數傳遞進來的函數。

3) 返回這個裝飾器內定義的函數

Python自制簡單實用的日志裝飾器

用一下試試看:

Python自制簡單實用的日志裝飾器

效果如下:

Python自制簡單實用的日志裝飾器

雖然這樣可以實現我們所需要的功能,但其實有很大的優化空間。

2.普通版裝飾器

 

第一版代碼中有一個顯而易見的問題,裝飾器內定義的處理函數不支持kwargs,而在裝飾器中支持kwargs僅僅是舉手之勞而已。

第二個問題是,生成時間戳的時候采用字符串截取的形式,這種形式過于粗暴。其實可以使用strftime做字符串轉換。

修改如下:

Python自制簡單實用的日志裝飾器

似乎優化得差不多了,不過依然存在改進空間。

3.優化版裝飾器

 

在前兩版代碼中,我們使用print進行日志輸出,其實這種處理日志的方式并不標準。

使用logging模塊控制日志輸出是一個更好地選擇。

為了使用logging模塊記錄日志,我們需要先配置好logging相關的選項。

1) 首先,生成一個日志記錄器,并配置日志等級:

Python自制簡單實用的日志裝飾器

2) 配置日志格式、增加handler控制輸出流:

Python自制簡單實用的日志裝飾器

此處可以設置handler所需要處理的日志等級,沒有設置則默認使用logger自身的Level,即DEBUG等級。

3) 最后,將此handler加入到日志記錄器內:

Python自制簡單實用的日志裝飾器

logging 完整配置如下:

Python自制簡單實用的日志裝飾器

使用的時候非常簡單,就是把print換成logger.debug即可:

Python自制簡單實用的日志裝飾器

效果如下:

Python自制簡單實用的日志裝飾器

這樣,一個比較完善的日志裝飾器就完成了。

附常用的日志等級配置:

Python自制簡單實用的日志裝飾器

我們的文章到此就結束啦,如果你喜歡今天的Python 實戰教程,請持續關注我們。

原文地址:https://mp.weixin.qq.com/s/oEYOfJ51kyjgDjS6vzj6GA

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 火影忍者小南裸羞羞漫画 | 亚洲欧美国产精品久久久 | 欧美破处摘花 | 特黄特a级特别特级特毛片 特黄a级三级三级野战 | 久久性生大片免费观看性 | 国产v日韩v欧美v精品专区 | 草草线在成年免费视频网站 | 亚洲 综合 自拍 精品 在线 | 国产愉拍精品视频手机 | 国产精品第 | 日韩在线视频二区 | 四虎影音在线 | 扒开双腿羞辱调教play视频 | 日韩成人av在线 | 国产精品久久免费观看 | 精品国产一区二区在线观看 | 精品综合久久久久久8888 | 午夜深情在线观看免费 | 国产伦精一区二区三区视频 | 亚洲国产欧美在线成人aaaa | 婷婷在线成人免费观看搜索 | 日韩精品国产自在欧美 | 欧美伊人久久久久久久久影院 | 深夜影院深a | 亚洲AV永久无码精品澳门 | 调教催眠改造np总攻 | 亚洲国产五月综合网 | 四虎国产精品免费入口 | 欧美在线看片a免费观看 | 国产精品免费观在线 | 韩剧在线免费观看 | 美女视频久久 | 色噜噜国产精品视频一区二区 | 91精品啪在线观看国产线免费 | 草莓在深夜释放自己软件 | 亚洲午夜久久久久久91 | 2019理论韩国理论中文 | 亚洲国产成人精品 | 波多野结衣52部合集在线观看 | 污小说免费 | 甜蜜调教|