詳解python程式中記錄日誌的方法

2021-07-22 03:45:23 字數 1779 閱讀 7620

日誌可以用來記錄應用程式的狀態、錯誤和資訊訊息,也經常作為除錯程式的工具。它的重要性就不多說了,直接進入正題。

python提供了乙個標準的日誌介面,就是logging模組。日誌級別有debug、info、warning、error、critical五種。

首先來看logging簡單的使用方法。

這一看到此圖中使用了debug()、info()、warning()、error()、critical()五個方法,這五個方法分別用來記錄debug、info、warning、error、critical級別的日誌。但是你會發現debug()和info()方法沒有顯示任何資訊,這是因為預設的日誌級別是error ,所以低於此級別的日誌不會記錄。你還可能會疑惑輸出來的日誌怎麼這樣子?別急,往下看,慢慢來解釋。

下面我們來看怎麼修改一下日誌級別。

如圖上所示,可以使用basicconfig()方法,修改日誌級別,logging.debug,logging.info,logging.warning,logging.error,logging.critical分別代表著那五中日誌級別。可以看到圖中日誌級別設為info,那麼info級別以上的日誌都會被記錄。

下面再看下怎麼修改日誌的輸出格式。

檢視下執行結果:

這個示例內容可能有點多了,沒關係,我們一點一點來。

首先程式中:

log_format = '%(filename)s [%(asctime)s] [%(levelname)s] %(message)s'       #

這條是定義日誌格式的乙個變數。顯示的條目可以是以下內容:

%(levelname):日誌級別的名字格式

%(levelno)s:日誌級別的數字表示

%(name)s:日誌名字

%(funcname)s:函式名字

%(asctime):日誌時間,可以使用datefmt去定義時間格式,如上圖。

%(pathname):指令碼的絕對路徑

%(filename):指令碼的名字

%(module):模組的名字

%(thread):thread id

%(threadname):執行緒的名字

logging.basicconfig(format=log_format,datefmt='%y-%m-%d %h:%m:%s %p',level=logging.debug)   #設定日誌輸出格式和級別。

上面的示例都是將日誌輸出到螢幕上,能不能寫到乙個日誌檔案中呢?答案當然是肯定的,來看:

看下執行結果:

看了吧,日誌的設定都是使用basicconfig()方法,需要注意的是,日誌寫入檔案的預設方式是『a』,也就是追加,如果想覆蓋檔案,則使用如上圖那樣,使用filemode='w'。

Python日誌記錄器詳解 Loguru

loguru乙個能徹底解放你的日誌記錄器。它即插即用,具備多種方式滾動日誌 自動壓縮日誌檔案 定時刪除等功能。除此之外,多執行緒安全 高亮日誌 日誌告警等功能也不在話下。下面就給大家介紹一下這個強大工具的基本使用方法。loguru 安裝方式很簡單,開啟終端輸入 pip install loguru即...

python記錄日誌

coding utf 8 author martin date 2017 10 9 import logging import sys 獲取logger例項,如果引數為空則返回root logger 指定logger輸出格式 formatter logging.formatter asctime s...

printf記錄程式日誌

但是通常我們需要在記錄日誌的時候記錄更多的資訊,比如說執行時間等,所以我們不能使用一條簡單的printf來完成該操作,另外,為防止日誌資訊以外丟失,我們最好是在每次printf後立即呼叫fflush。所以我們通常會使用下面的方法來完成日誌記錄操作 void cdecl log0 const char...