溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python中怎么記錄程序日志

發(fā)布時間:2021-07-05 14:56:56 來源:億速云 閱讀:325 作者:Leah 欄目:大數(shù)據(jù)

本篇文章給大家分享的是有關(guān)Python中怎么記錄程序日志,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

Python中內(nèi)置一個日志模塊——logging,通過它我們就可以很方便的在Python代碼中記錄簡單的程序日志。

logging模塊將日志分為了五個等級:

  • DEBUG:調(diào)試信息,通常在診斷問題的時候用得著;

  • INFO:普通信息,確認(rèn)程序安裝預(yù)期運(yùn)行;

  • WARNING:警告信息,表示發(fā)生了意想不到的事情,或者指示接下來可能會出現(xiàn)一些問題,但是程序還是繼續(xù)運(yùn)行;

  • ERROR:錯誤信息,程序運(yùn)行中出現(xiàn)了一些問題,一些功能沒有執(zhí)行;

  • CRITICAL:危險信息,一個嚴(yán)重的錯誤,導(dǎo)致程序無法繼續(xù)運(yùn)行。

上述的五個等級的日志信息分別使用:logging模塊的debug()、info()、warning()、error()、critical()方法來實(shí)現(xiàn)。

默認(rèn)情況下,logging使用的日志級別是warning,這表示只有在這個級別及其以上級別的日志信息才會被記錄,所以默認(rèn)情況下debug信息和info信息都不會被顯示出來。

我們來測試一下:

Python中怎么記錄程序日志

運(yùn)行代碼,控制臺會顯示:

ERROR:root:出現(xiàn)了錯誤
WARNING:root:警告信息

INFO級別的信息,果然沒有顯示出來。

我們使用logging模塊的basicConfig()方法,修改一個日志輸出等級為INFO :

Python中怎么記錄程序日志

這樣,控制臺中就能夠輸出INFO級別的信息了:

ERROR:root:出現(xiàn)了錯誤
INFO:root:打印信息
WARNING:root:警告信息

記錄的日志信息除了打印到控制臺之外,我們還能夠?qū)⑵鋵懭胛募?。同樣是使用basicConfig()方法進(jìn)行設(shè)置:

Python中怎么記錄程序日志

運(yùn)行程序,會生成一個名為test.log的文本文件,里面是日志記錄的內(nèi)容:

Python中怎么記錄程序日志

如果我們重復(fù)運(yùn)行上面的代碼,會發(fā)現(xiàn),日志信息會追加在test.log文件的內(nèi)容后面:

Python中怎么記錄程序日志

如果不想這樣怎么辦,同樣在basicConfig()方法中使用filemode參數(shù)進(jìn)行設(shè)置:

Python中怎么記錄程序日志

這樣,生成的日志文件就是一個新的:

Python中怎么記錄程序日志

在上面輸出的日志信息我們可以發(fā)現(xiàn),所有的消息都是"日志級別:角色:消息"這樣的格式輸出的。


如果我們想改變?nèi)罩鞠⒌母袷侥兀客瑯邮褂胋asicConfig()方法,利用其format參數(shù)進(jìn)行設(shè)置。先來看一個例子:

Python中怎么記錄程序日志

我們設(shè)置格式為消息等級和消息內(nèi)容。輸出的日志內(nèi)容中,已經(jīng)沒有了root這個信息了:

Python中怎么記錄程序日志

logging支持的格式還不止這兩種,我們來看看:

  • %(asctime)s:日志創(chuàng)建時的普通時間;

  • %(created)f:日志創(chuàng)建時的時間(由time.time()返回);

  • %(filename)s:文件名;

  • %(funcName)s:調(diào)用日志記錄的函數(shù);

  • %(levelname)s:日志消息的文本級別;

  • %(levelno)s:日志消息的數(shù)字級別;

  • %(lineno)d:調(diào)用日志消息的行號;

  • %(msecs)d:創(chuàng)建時間的毫秒部分;

  • %(message)s:日志消息;

  • %(name)s:日志器的名稱;

  • %(pathname)s:記錄日志的源文件的路徑名;

  • %(process)d:進(jìn)程ID;

  • %(processName)s:進(jìn)程名;

  • %(thread)d:線程ID;

  • %(threadName)s:線程名;

  • %(relativeCreated)d:創(chuàng)建日志記錄的時間(以毫秒為單位)

借助于這些格式,我們可以自定義日志記錄,比如顯示時間:

Python中怎么記錄程序日志

以上就是Python中怎么記錄程序日志,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI