1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Python 自制簡(jiǎn)單實(shí)用的日志裝飾器

        共 859字,需瀏覽 2分鐘

         ·

        2022-07-06 08:54

        ↑ 關(guān)注 + 星標(biāo) ,每天學(xué)Python新技能

        后臺(tái)回復(fù)【大禮包】送你Python自學(xué)大禮包

        人生苦短,快學(xué)Python!在寫代碼的時(shí)候,往往會(huì)漏掉日志這個(gè)關(guān)鍵因素,導(dǎo)致功能在使用的時(shí)候出錯(cuò)卻無(wú)法溯源。

        其實(shí),只需要寫一個(gè)非常簡(jiǎn)單的日志裝飾器,我們就能大大提升排查問(wèn)題的效率。

        1.簡(jiǎn)陋版裝飾器



        寫一個(gè)裝飾器非常簡(jiǎn)單,因?yàn)楸举|(zhì)上裝飾器就是一個(gè)返回函數(shù)的“高階”函數(shù)而已:

        1) 函數(shù)作為參數(shù)傳遞進(jìn)裝飾器。
        2) 裝飾器內(nèi)定義一個(gè)函數(shù),處理作為參數(shù)傳遞進(jìn)來(lái)的函數(shù)。
        3) 返回這個(gè)裝飾器內(nèi)定義的函數(shù)


        用一下試試看:


        效果如下:



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

        2.普通版裝飾器



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

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

        修改如下:


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


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



        在前兩版代碼中,我們使用print進(jìn)行日志輸出,其實(shí)這種處理日志的方式并不標(biāo)準(zhǔn)。

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

        為了使用logging模塊記錄日志,我們需要先配置好logging相關(guān)的選項(xiàng)。

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


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


        此處可以設(shè)置handler所需要處理的日志等級(jí),沒(méi)有設(shè)置則默認(rèn)使用logger自身的Level,即DEBUG等級(jí)。

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


        logging 完整配置如下:

        使用的時(shí)候非常簡(jiǎn)單,就是把print換成logger.debug即可:



        效果如下:



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

        附常用的日志等級(jí)配置:

        人生苦短,快學(xué)Python!我們明天見(jiàn)~~~



        1. 深圳一普通中學(xué)老師工資單曝光,秒殺程序員

        2. 寫 Python 腳本,一定要加上這個(gè)!


        瀏覽 66
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            男人日女人批视频 | 妇欲性难耐bd在线观看莉娜色诱 | 77777亚洲午夜久久多人 sandrarusso精品艳妇 | 亚洲乱码国产乱码精品精软件 | 早川濑里奈av | 在线观看国产黄色片 | 亚洲荡妇 | 女生操男生视频 | 91 口爆吞精国产 | 欧美成年人网站 |