欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中l(wèi)ogger模塊的使用場(chǎng)景分析

 更新時(shí)間:2023年06月07日 11:44:14   作者:思念殤千尋  
logger是python的內(nèi)置模塊,用以輸出代碼運(yùn)行過程中的運(yùn)行情況,極大的方便了我們的debug過程,本文通過實(shí)例代碼給大家介紹了Python中l(wèi)ogger模塊的使用教程,需要的朋友可以參考下

logging模塊簡(jiǎn)介

logging模塊是Python內(nèi)置的日志模塊,用來生成程序的日志。一條日志對(duì)應(yīng)一個(gè)事件的發(fā)生,一個(gè)事件一般包括:事件發(fā)生時(shí)間、事件發(fā)生位置、事件內(nèi)容、事件嚴(yán)重程度-日志級(jí)別。(還可以包括進(jìn)程ID、進(jìn)程名稱、線程ID、線程名稱等)

logging模塊的組成

1.日志級(jí)別:日志分為五個(gè)等級(jí),從低到高分別是:DEBUG、INFO、WANGING、ERROR、CRITICAL

  • DEBUG:最詳細(xì)的信息,通常定位問題的時(shí)候用
  • INFO:確認(rèn)一切按照預(yù)期運(yùn)行,詳細(xì)程度僅次于DEBUG
  • WARNING:一些意想不到的問題發(fā)生了,或者不久的將來將要發(fā)生問題,比如磁盤空間小,軟件還能正常運(yùn)行。
  • ERROR:很嚴(yán)重的問題,軟件沒能正確執(zhí)行某些功能。
  • CRITICAL:一個(gè)嚴(yán)重的錯(cuò)誤,程序本身無法繼續(xù)運(yùn)行了。

當(dāng)你的程序指定了一個(gè)日志級(jí)別后,程序會(huì)記錄所有日志級(jí)別大于等于指定級(jí)別的log。比如指定的級(jí)別是WARNING,那么記錄的將是WARNING、ERROR、CRITICAL。至于如何設(shè)置指定日志級(jí)別,將在后面說到。

2.logging的4個(gè)組件:

  • logger(日志器):日志類,通過這個(gè)類提供的API來記錄日志。
  • handler(處理器):對(duì)日志信息處理,可以將日志發(fā)送到不同的目標(biāo)域中。
  • filter(過濾器):對(duì)日志信息進(jìn)行過濾。
  • formatter(格式器):日志的格式化

logger模塊的使用

  logger是python的內(nèi)置模塊,用以輸出代碼運(yùn)行過程中的運(yùn)行情況,極大的方便了我們的debug過程。參考資料中列出了使用logger相比于print優(yōu)越的地方:

  1. 使用print很難和代碼的正常輸出區(qū)分開

  2. 使用print沒有辦法一次性失能或移除所有的debug語(yǔ)句

  3. 使用print不能生成一個(gè)統(tǒng)一可讀性好的的logger日志文件

  一個(gè)最簡(jiǎn)單的使用場(chǎng)景,首先用下面的代碼import logging包,然后將logger等級(jí)設(shè)置為DEBUG:

import logging
logging.basicConfig(level=logging.DEBUG)

  然后在代碼中需要輸出debug語(yǔ)句的地方將print替換成logging:

logging.debug("This is for debug.")

  實(shí)際上,上面的這種用法直接但并不標(biāo)準(zhǔn),標(biāo)準(zhǔn)的做法是定義一個(gè)logger,這樣的話輸入logger日志的時(shí)候就會(huì)顯示定義logger的名字,更容易閱讀:

logger1 = logging.getLogger("module_1")
logger2 = logging.getLogger("module_2")
logger1.debug("Module 1 debugger")
logger2.debug("Module 2 debugger")

  如果想把logging語(yǔ)句輸出到文件,只需要在basicConfig部分再添加一個(gè)filename參數(shù),這樣結(jié)果就會(huì)輸出到日志文件中:

logging.basicConfig(filename="test.log", level=logging.DEBUG)

  基本的用法就是這些,實(shí)際上logging顯然不僅只有debug而是還有其他非常多的等級(jí),如下表所示:

   默認(rèn)的等級(jí)是30,調(diào)成10就會(huì)輸出所有大于等于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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python數(shù)字圖像處理數(shù)據(jù)類型及顏色空間轉(zhuǎn)換

    python數(shù)字圖像處理數(shù)據(jù)類型及顏色空間轉(zhuǎn)換

    這篇文章主要為大家介紹了python數(shù)字圖像處理數(shù)據(jù)類型及顏色空間轉(zhuǎn)換示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Python使用回溯法子集樹模板獲取最長(zhǎng)公共子序列(LCS)的方法

    Python使用回溯法子集樹模板獲取最長(zhǎng)公共子序列(LCS)的方法

    這篇文章主要介紹了Python使用回溯法子集樹模板獲取最長(zhǎng)公共子序列(LCS)的方法,簡(jiǎn)單描述了最長(zhǎng)公共子序列問題并結(jié)合實(shí)例形式分析了Python基于回溯法子集樹模板獲取最長(zhǎng)公共子序列的操作步驟與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-09-09
  • Python中請(qǐng)使用isinstance()判斷變量類型

    Python中請(qǐng)使用isinstance()判斷變量類型

    這篇文章主要介紹了Python中請(qǐng)使用isinstance()判斷變量類型,本文先是給出了isinstance函數(shù)判斷變量類型的例子,并對(duì)isinstance 和 type的區(qū)別做了講解,需要的朋友可以參考下
    2014-08-08
  • python格式化輸出format()函數(shù)常見用法和格式選項(xiàng)

    python格式化輸出format()函數(shù)常見用法和格式選項(xiàng)

    這篇文章主要介紹了python格式化輸出format()函數(shù)常見用法和格式選項(xiàng)的相關(guān)資料,format方法是一種強(qiáng)大的字符串格式化工具,它允許你將變量或表達(dá)式插入到字符串中,并根據(jù)需要進(jìn)行格式化,需要的朋友可以參考下
    2025-03-03
  • 深入了解Python的異常處理機(jī)制

    深入了解Python的異常處理機(jī)制

    這篇文章主要為大家介紹了Python的異常處理機(jī)制,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • opencv檢測(cè)動(dòng)態(tài)物體的實(shí)現(xiàn)

    opencv檢測(cè)動(dòng)態(tài)物體的實(shí)現(xiàn)

    本文主要介紹了opencv檢測(cè)動(dòng)態(tài)物體的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • PyQt5使用mimeData實(shí)現(xiàn)拖拽事件教程示例解析下

    PyQt5使用mimeData實(shí)現(xiàn)拖拽事件教程示例解析下

    這篇文章主要為大家介紹了PyQt5使用mimeData實(shí)現(xiàn)拖拽事件的教程示例解析,系列文章詳見文中跳轉(zhuǎn)鏈接,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • Python多線程threading模塊用法實(shí)例分析

    Python多線程threading模塊用法實(shí)例分析

    這篇文章主要介紹了Python多線程threading模塊用法,結(jié)合實(shí)例形式分析了Python多線程threading模塊原理、功能、常見應(yīng)用及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-05-05
  • Python調(diào)整PDF文檔頁(yè)邊距的方法小結(jié)

    Python調(diào)整PDF文檔頁(yè)邊距的方法小結(jié)

    PDF 文檔中的邊距是指環(huán)繞每頁(yè)內(nèi)容的空白區(qū)域,充當(dāng)文本或圖像與頁(yè)面邊緣之間的緩沖區(qū),本文將介紹如何使用 Spire.PDF for Python 修改 PDF 文檔的頁(yè)邊距,為不同使用場(chǎng)景定制合適的文檔布局,需要的朋友可以參考下
    2024-05-05
  • Django基于客戶端下載文件實(shí)現(xiàn)方法

    Django基于客戶端下載文件實(shí)現(xiàn)方法

    這篇文章主要介紹了Django基于客戶端下載文件實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04

最新評(píng)論