Python中l(wèi)ogger模塊的使用場景分析
logging模塊簡介
logging模塊是Python內(nèi)置的日志模塊,用來生成程序的日志。一條日志對應(yīng)一個事件的發(fā)生,一個事件一般包括:事件發(fā)生時間、事件發(fā)生位置、事件內(nèi)容、事件嚴(yán)重程度-日志級別。(還可以包括進(jìn)程ID、進(jìn)程名稱、線程ID、線程名稱等)
logging模塊的組成
1.日志級別:日志分為五個等級,從低到高分別是:DEBUG、INFO、WANGING、ERROR、CRITICAL
- DEBUG:最詳細(xì)的信息,通常定位問題的時候用
- INFO:確認(rèn)一切按照預(yù)期運(yùn)行,詳細(xì)程度僅次于DEBUG
- WARNING:一些意想不到的問題發(fā)生了,或者不久的將來將要發(fā)生問題,比如磁盤空間小,軟件還能正常運(yùn)行。
- ERROR:很嚴(yán)重的問題,軟件沒能正確執(zhí)行某些功能。
- CRITICAL:一個嚴(yán)重的錯誤,程序本身無法繼續(xù)運(yùn)行了。
當(dāng)你的程序指定了一個日志級別后,程序會記錄所有日志級別大于等于指定級別的log。比如指定的級別是WARNING,那么記錄的將是WARNING、ERROR、CRITICAL。至于如何設(shè)置指定日志級別,將在后面說到。
2.logging的4個組件:
- logger(日志器):日志類,通過這個類提供的API來記錄日志。
- handler(處理器):對日志信息處理,可以將日志發(fā)送到不同的目標(biāo)域中。
- filter(過濾器):對日志信息進(jìn)行過濾。
- formatter(格式器):日志的格式化
logger模塊的使用
logger是python的內(nèi)置模塊,用以輸出代碼運(yùn)行過程中的運(yùn)行情況,極大的方便了我們的debug過程。參考資料中列出了使用logger相比于print優(yōu)越的地方:
1. 使用print很難和代碼的正常輸出區(qū)分開
2. 使用print沒有辦法一次性失能或移除所有的debug語句
3. 使用print不能生成一個統(tǒng)一可讀性好的的logger日志文件
一個最簡單的使用場景,首先用下面的代碼import logging包,然后將logger等級設(shè)置為DEBUG:
import logging logging.basicConfig(level=logging.DEBUG)
然后在代碼中需要輸出debug語句的地方將print替換成logging:
logging.debug("This is for debug.")實(shí)際上,上面的這種用法直接但并不標(biāo)準(zhǔn),標(biāo)準(zhǔn)的做法是定義一個logger,這樣的話輸入logger日志的時候就會顯示定義logger的名字,更容易閱讀:
logger1 = logging.getLogger("module_1")
logger2 = logging.getLogger("module_2")
logger1.debug("Module 1 debugger")
logger2.debug("Module 2 debugger")如果想把logging語句輸出到文件,只需要在basicConfig部分再添加一個filename參數(shù),這樣結(jié)果就會輸出到日志文件中:
logging.basicConfig(filename="test.log", level=logging.DEBUG)
基本的用法就是這些,實(shí)際上logging顯然不僅只有debug而是還有其他非常多的等級,如下表所示:

默認(rèn)的等級是30,調(diào)成10就會輸出所有大于等于10的了。
參考模塊:
https://www.digitalocean.com/community/tutorials/how-to-use-logging-in-python-3
到此這篇關(guān)于Python中l(wèi)ogger模塊的使用教程的文章就介紹到這了,更多相關(guān)Python logger模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python matplotlib生成圖片背景透明的示例代碼
這篇文章主要介紹了Python matplotlib生成圖片背景透明的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
這篇文章主要介紹了在Mac OS上部署Nginx和FastCGI以及Flask框架的教程,Flask是Python下一個極簡的web開放框架,需要的朋友可以參考下2015-05-05
Python并發(fā)編程之進(jìn)程間通信原理及實(shí)現(xiàn)解析
這篇文章主要為大家介紹了Python并發(fā)編程之進(jìn)程間通信原理及實(shí)現(xiàn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
python自動獲取微信公眾號最新文章的實(shí)現(xiàn)代碼
這篇文章主要介紹了python自動獲取微信公眾號最新文章,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07

