您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關Python中怎么記錄程序日志,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
Python中內置一個日志模塊——logging,通過它我們就可以很方便的在Python代碼中記錄簡單的程序日志。
logging模塊將日志分為了五個等級:
DEBUG:調試信息,通常在診斷問題的時候用得著;
INFO:普通信息,確認程序安裝預期運行;
WARNING:警告信息,表示發生了意想不到的事情,或者指示接下來可能會出現一些問題,但是程序還是繼續運行;
ERROR:錯誤信息,程序運行中出現了一些問題,一些功能沒有執行;
CRITICAL:危險信息,一個嚴重的錯誤,導致程序無法繼續運行。
上述的五個等級的日志信息分別使用:logging模塊的debug()、info()、warning()、error()、critical()方法來實現。
默認情況下,logging使用的日志級別是warning,這表示只有在這個級別及其以上級別的日志信息才會被記錄,所以默認情況下debug信息和info信息都不會被顯示出來。
我們來測試一下:
運行代碼,控制臺會顯示:
ERROR:root:出現了錯誤
WARNING:root:警告信息
INFO級別的信息,果然沒有顯示出來。
我們使用logging模塊的basicConfig()方法,修改一個日志輸出等級為INFO :
這樣,控制臺中就能夠輸出INFO級別的信息了:
ERROR:root:出現了錯誤
INFO:root:打印信息
WARNING:root:警告信息
記錄的日志信息除了打印到控制臺之外,我們還能夠將其寫入文件中。同樣是使用basicConfig()方法進行設置:
運行程序,會生成一個名為test.log的文本文件,里面是日志記錄的內容:
如果我們重復運行上面的代碼,會發現,日志信息會追加在test.log文件的內容后面:
如果不想這樣怎么辦,同樣在basicConfig()方法中使用filemode參數進行設置:
這樣,生成的日志文件就是一個新的:
在上面輸出的日志信息我們可以發現,所有的消息都是"日志級別:角色:消息"這樣的格式輸出的。
如果我們想改變日志消息的格式呢?同樣使用basicConfig()方法,利用其format參數進行設置。先來看一個例子:
我們設置格式為消息等級和消息內容。輸出的日志內容中,已經沒有了root這個信息了:
logging支持的格式還不止這兩種,我們來看看:
%(asctime)s:日志創建時的普通時間;
%(created)f:日志創建時的時間(由time.time()返回);
%(filename)s:文件名;
%(funcName)s:調用日志記錄的函數;
%(levelname)s:日志消息的文本級別;
%(levelno)s:日志消息的數字級別;
%(lineno)d:調用日志消息的行號;
%(msecs)d:創建時間的毫秒部分;
%(message)s:日志消息;
%(name)s:日志器的名稱;
%(pathname)s:記錄日志的源文件的路徑名;
%(process)d:進程ID;
%(processName)s:進程名;
%(thread)d:線程ID;
%(threadName)s:線程名;
%(relativeCreated)d:創建日志記錄的時間(以毫秒為單位)
借助于這些格式,我們可以自定義日志記錄,比如顯示時間:
以上就是Python中怎么記錄程序日志,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。