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

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

