我們先來看一下函式式簡單配置
預設情況下python的logging模組將日誌列印到了標準輸出中,且只顯示了大於等於warning級別的日誌,這說明預設的日誌級別設定為warning
(日誌級別等級critical > error > warning > info > debug),
預設的日誌格式為日誌級別:logger名稱:使用者輸出訊息。
我們自己用函式寫的這個可以正常使用但是不夠靈活,我們看看這個靈活的
下面我將在這裡介紹乙個簡單的日誌書寫格式
首先要匯入模組 通過logging.getlogger建立物件,括號內為使用者名稱預設為root。因為匯入方式比較長,為了方便之後的使用所以賦值給了logger。
然後通過logging.filehandler 建立乙個log檔案,mode預設為追加模式,通過logging.streamhandler建立終端輸出模式、
通過logging.formatter來定義輸出的格式。和字串的格式不同,logging中有以下格式。
%(name)s logger的名字
%(levelno)s 數字形式的日誌級別
%(levelname)s 文字形式的日誌級別
%(pathname)s 呼叫日誌輸出函式的模組的完整路徑名,可能沒有
%(filename)s 呼叫日誌輸出函式的模組的檔名
%(module)s 呼叫日誌輸出函式的模組名
%(funcname)s 呼叫日誌輸出函式的函式名
%(lineno)d 呼叫日誌輸出函式的語句所在的**行
%(created)f 當前時間,用unix標準的表示時間的浮 點數表示
%(relativecreated)d 輸出日誌資訊時的,自logger建立以 來的毫秒數
%(asctime)s 字串形式的當前時間。預設格式是 「2003-07-08 16:49:45,896」。逗號後面的是毫秒
%(thread)d 執行緒id。可能沒有
%(threadname)s 執行緒名。可能沒有
%(process)d 程序id。可能沒有
%(message)s使用者輸出的訊息
通過以下兩種方式來設定輸出等級,我們上面也說過logging預設的輸出等級為warning及30.我們下面列乙個各個級別對應的數字。
通過上圖可以知道每個級別對應的數字。
隨後我們用之前確定好的輸出模式用過setformatter來繫結到檔案和螢幕上。
然後通過addhandler將設定儲存日誌資訊的檔案繫結到logger日誌上,且addhandler每執行一次會多新增一次輸出,所以日誌最好單次執行,多次執行需要謹慎執行addhandler。
最後即使通過不同的級別來記錄日誌了。
python中的logging模組
一 python中的logging模組提供了日誌的介面,過它儲存各種格式的日誌 日誌的等級分為以下幾種,日誌的等級按照以下順序依次提高,debug info warning error critical 但是日誌的資訊量是依次減少的,當指定乙個日誌級別之後,會記錄大於或等於這個日誌級別的日誌資訊,小...
python中的logging模組學習
l 預設的情況下python的logging模組列印到控制台,只顯示大於等於warning級別的日誌 l 日誌級別 critical error warning info debug notset 1.logger l logger是乙個樹形層級結構,輸出資訊之前都要獲得乙個logger l log...
Python中logging例項講解
logging 的基本用法網上很多,這裡就不介紹了。在引入正文之前,先來看乙個需求 假設需要將某功能封裝成類庫供他人使用,如何處理類庫中的日誌?數年前在乙個 c 開發的專案中,我用程式設計客棧了這樣的方法 定義乙個 logging 基類,所有需要用到日誌的類都繼承這個基類,這個基類中定義乙個 log...