您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(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信息都不會被顯示出來。
我們來測試一下:
運(yùn)行代碼,控制臺會顯示:
ERROR:root:出現(xiàn)了錯誤
WARNING:root:警告信息
INFO級別的信息,果然沒有顯示出來。
我們使用logging模塊的basicConfig()方法,修改一個日志輸出等級為INFO :
這樣,控制臺中就能夠輸出INFO級別的信息了:
ERROR:root:出現(xiàn)了錯誤
INFO:root:打印信息
WARNING:root:警告信息
記錄的日志信息除了打印到控制臺之外,我們還能夠?qū)⑵鋵懭胛募?。同樣是使用basicConfig()方法進(jìn)行設(shè)置:
運(yùn)行程序,會生成一個名為test.log的文本文件,里面是日志記錄的內(nèi)容:
如果我們重復(fù)運(yùn)行上面的代碼,會發(fā)現(xiàn),日志信息會追加在test.log文件的內(nèi)容后面:
如果不想這樣怎么辦,同樣在basicConfig()方法中使用filemode參數(shù)進(jìn)行設(shè)置:
這樣,生成的日志文件就是一個新的:
在上面輸出的日志信息我們可以發(fā)現(xiàn),所有的消息都是"日志級別:角色:消息"這樣的格式輸出的。
如果我們想改變?nèi)罩鞠⒌母袷侥兀客瑯邮褂胋asicConfig()方法,利用其format參數(shù)進(jìn)行設(shè)置。先來看一個例子:
我們設(shè)置格式為消息等級和消息內(nèi)容。輸出的日志內(nèi)容中,已經(jīng)沒有了root這個信息了:
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中怎么記錄程序日志,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。
免責(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)容。