国产探花免费观看_亚洲丰满少妇自慰呻吟_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必須名字一致,是會被識別出來的!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 铜山县| 定襄县| 连城县| 景洪市| 桦南县| 廊坊市| 巫溪县| 汉沽区| 桓台县| 南靖县| 东源县| 略阳县| 张家川| 佛教| 怀安县| 灵山县| 巴林右旗| 大渡口区| 丹凤县| 贵州省| 会昌县| 无极县| 阜新市| 太白县| 清苑县| 东丽区| 隆林| 盖州市| 盈江县| 体育| 甘泉县| 云南省| 长宁县| 宜章县| 长葛市| 闽侯县| 金塔县| 准格尔旗| 紫金县| 大邑县| 浮梁县|