国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python Logging 日志記錄入門學習

2020-02-15 21:36:21
字體:
來源:轉載
供稿:網友

Python Logging原來真的遠比我想象的要復雜很多很多,學習路線堪比git。但是又繞不過去,alternatives又少,所以必須要予以重視,踏踏實實認認真真的來好好學學才行。

學習Logging的目的:

簡單腳本還好,print足夠。

但是稍微復雜點,哪怕是三四個文件加起來兩三百行代碼,調試也開始變復雜起來了。

再加上如果是后臺長期運行的那種腳本,運行信息的調查更是復雜起來。

一開始我還在各種查crontab的日志查看,或者是python后臺運行查看,或者是python stdout的獲取等等,全都找錯了方向。

真正的解決方案在于正確的logging。

記錄好了的話,我不需要去找python的控制臺輸出stdout,也不需要找crontab的日志,只需要查看log文件即可。

下面是python的logging學習記錄。

最簡單的日志輸出(無文件記錄)

import logging logging.error("出現了錯誤")logging.info("打印信息")logging.warning("警告信息")

首先,忘掉logging.info()! 忘掉logging.basicConfig()!

網上各種關于python logging的文章實在是太不體諒新手了,logging這么復雜的東西竟然想表現得很簡單,還用各種簡單的東西做假象。

實際上我們真正要用起來的日志,絕對是不會直接用logging.info()logging.basicConfig()這樣的,這是此模塊的官方推出來迷惑人的——看似讓你一鍵上手,快速看到結果,但是跟實際真的不搭!

所以為了后面解釋起來輕松,必須先警告這點:忘記它們倆!

記住,唯一要用到logging.什么的,就只有logging.getLogger()這一次。

了解logging的工作流

不想上流程圖一類的東西,那樣反而更迷糊。

簡單說吧:

logging模塊是會自動將你自定制的logger對象全局化的,

也就是說,你在自己的模塊里只要定義了一次某個logger,比如叫log,那么只要是在同一個模塊中運行的其他文件都能讀取到它。

比如說,你在主文件main.py中自定義了一個logger,可能設置了什么輸出文件、輸出格式什么的,然后你在main.py中會引用一些別的文件或模塊,比如sub.py,那么在這個sub.py中你什么都不用設置,只要用一句logger = logging.getLogger('之前在main.py定義的日志名')即可獲得之前的一切自定義設置。

當然,被調用的文件(先稱為子模塊)中,用logging.getLogger('日志名')時,最好在日志名后加一個.子名稱這樣的,比如main.sub。這樣輸出的時候就會顯示出來某條日志記錄是來自于這個文件里了。當然,.前面的父級logger必須名字一致,是會被識別出來的!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宣汉县| 乐至县| 崇明县| 元朗区| 麦盖提县| 吴川市| 阳曲县| 宣汉县| 喜德县| 县级市| 凤冈县| 五大连池市| 韩城市| 淮滨县| 梅河口市| 申扎县| 封开县| 句容市| 汉中市| 临安市| 沛县| 泽普县| 连州市| 凭祥市| 宜昌市| 富裕县| 湘西| 茂名市| 双鸭山市| 永登县| 荣昌县| 台南县| 广丰县| 彰化市| 湘潭县| 宁津县| 宜春市| 望江县| 赣榆县| 曲靖市| 邵阳县|