自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

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

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

1.簡陋版裝飾器

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

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

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

3) 返回這個裝飾器內(nèi)定義的函數(shù)

用一下試試看:

效果如下:

雖然這樣可以實現(xiàn)我們所需要的功能,但其實有很大的優(yōu)化空間。

2.普通版裝飾器

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

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

修改如下:

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

3.優(yōu)化版裝飾器

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

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

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

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

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

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

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

logging 完整配置如下:

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

效果如下:

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

附常用的日志等級配置:

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

 

責任編輯:龐桂玉 來源: 菜鳥學Python
相關推薦

2023-08-07 16:07:42

2024-11-09 08:26:52

Python裝飾器

2023-08-02 16:14:04

2016-11-01 09:24:38

Python裝飾器

2010-02-01 17:50:32

Python裝飾器

2021-08-24 23:23:35

Python工具開發(fā)

2023-02-07 07:47:52

Python裝飾器函數(shù)

2024-05-24 11:36:28

Python裝飾器

2009-02-12 15:43:00

CCProxy代理服務器

2021-04-11 08:21:20

Python@property裝飾器

2025-01-22 15:58:46

2022-09-19 23:04:08

Python裝飾器語言

2010-09-14 10:29:43

配置tftp服務器

2021-05-14 11:39:58

SchedulePython工具

2021-06-01 07:19:58

Python函數(shù)裝飾器

2024-09-12 15:32:35

裝飾器Python

2022-09-27 11:01:08

Python裝飾器

2009-12-14 10:08:54

2009-06-24 10:58:21

jQuery插件教程

2023-12-11 15:51:00

Python裝飾器代碼
點贊
收藏

51CTO技術棧公眾號