最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 中如何使用 setLevel() 設(shè)置日志級別

 更新時間:2023年07月10日 09:58:10   作者:跡憶客  
這篇文章主要介紹了在 Python 中使用setLevel() 設(shè)置日志級別,Python 提供了一個單獨的日志記錄模塊作為其標(biāo)準(zhǔn)庫的一部分,以簡化日志記錄,本文將討論日志記錄 setLevel 及其在 Python 中的工作方式,需要的朋友可以參考下

日志記錄是任何程序員生活中非常有效的工具。 它不僅可以讓我們更好地理解程序的流程,還可以讓我們了解程序執(zhí)行過程中可能出現(xiàn)的錯誤。

Python 提供了一個單獨的日志記錄模塊作為其標(biāo)準(zhǔn)庫的一部分,以簡化日志記錄。 本文將討論日志記錄 setLevel 及其在 Python 中的工作方式。

Python登錄程序的功能

日志記錄是在軟件運行時跟蹤程序流程的過程。 但是,如果您沒有實現(xiàn)登錄到您的程序中,那么每當(dāng)程序崩潰時,就很難找到發(fā)生問題的根源。

通過在程序中實現(xiàn)日志記錄,您可以輕松找到問題的根源并立即解決。 它在調(diào)試和開發(fā)軟件時非常有用。

有時,人們使用打印語句來查找軟件中的問題。 打印可以解決簡單腳本的問題,但對于更大、更復(fù)雜的軟件來說,它們不是一個好的選擇。

Python 在其標(biāo)準(zhǔn)庫中提供了一個稱為日志記錄的內(nèi)置模塊,該模塊將狀態(tài)消息寫入任何輸出流或文件,以說明程序的哪一部分正在運行以及導(dǎo)致了什么問題。

Python 中的日志消息級別

Python 中的日志記錄模塊根據(jù)其重要性具有不同的狀態(tài)/日志消息級別。 因此,日志消息的級別告訴您該日志消息的重要性。

日志消息的不同級別如下:DEBUG、INFO、WARNING、ERROR 和 CRITICAL,其中 CRITICAL 的重要性最高。

日志級別說明
DEBUG它用于在軟件中進行調(diào)試。 通常會在出現(xiàn)問題時提供詳細(xì)信息。
INFO它確保程序中的一切正常。
WARNING用來表示將來可能會出現(xiàn)一些問題,應(yīng)該予以解決以避免將來出現(xiàn)問題。
ERROR用于表示軟件由于嚴(yán)重問題而無法執(zhí)行特定功能。
CRITICAL此級別表示導(dǎo)致軟件停止的嚴(yán)重問題。

所有這些級別都是為處理程序或記錄器設(shè)置的,以便在發(fā)生錯誤時可以在適當(dāng)?shù)臅r間顯示適當(dāng)?shù)南ⅰ?日志記錄級別在上面根據(jù)它們的重要性進行了解釋,第一個是最不重要的,最后一個(CRITICAL 級別)是最重要的。

使用 Python 日志記錄模塊中的 setLevel() 函數(shù)設(shè)置日志記錄級別

setLevel(level) 函數(shù)用于將記錄器的閾值設(shè)置為指定級別。 低于指定級別的日志記錄消息將被忽略,而具有更高嚴(yán)重性的消息將由為記錄器提供服務(wù)的相應(yīng)處理程序發(fā)出。

Python 中的日志記錄有一個有效級別的概念。 最初,當(dāng)創(chuàng)建記錄器時,它被設(shè)置為 NOTSET 級別。

但是,此 NOTSET 不是有效級別。 有效級別是在 setLevel(level) 的幫助下明確設(shè)置的級別。

創(chuàng)建記錄器時,如果未顯式設(shè)置其級別,則檢查其父記錄器的級別以獲得記錄器的有效級別,該級別將使用 setLevel(level) 顯式設(shè)置。 如果父記錄器也未設(shè)置為有效級別,則檢查其父記錄器。

該過程將繼續(xù),直到找到 NOTSET 以外的級別或到達(dá)根。 根記錄器設(shè)置為默認(rèn)級別警告; 因此,在這種情況下,root 的默認(rèn)級別將被視為有效級別。

現(xiàn)在,讓我們通過一些代碼示例了解 setLevel(level) 的用法。

import logging
logging.debug('Debug message')
logging.info('Info message')
logging.warning('Warning message')
logging.error('Error message')
logging.critical('Critical message')

輸出:

WARNING:root:Warning message
ERROR:root:Error message
CRITICAL:root:Critical message

如上面的輸出所示,只打印了 WARNING、ERROR 和 CRITICAL 消息,因為根記錄器的默認(rèn)級別 WARNING 已被視為有效級別,因為沒有指定其他記錄器或其父級。 因此,將打印 WARNING 及之后級別的所有消息,而忽略不那么重要的消息。

讓我們看一個例子,記錄器將有效級別視為父級別。

import logging
parent_logger = logging.getLogger('parent')
parent_logger.setLevel(4)
child_logger = logging.getLogger('parent.child')
print(parent_logger.getEffectiveLevel())
print(child_logger.getEffectiveLevel())

輸出:

4

4

可以看到,child_logger沒有設(shè)置有效級別,所以使用parent_logger的級別作為有效級別。

Python 中的日志處理程序

Python 中的處理程序是負(fù)責(zé)將適當(dāng)?shù)娜罩鞠⒂涗浀教幚沓绦虻闹付康牡氐膶ο螅?這些處理程序也像記錄器一樣工作。 如果記錄器沒有設(shè)置處理程序,則會在其祖先中搜索處理程序。

現(xiàn)在讓我們看看處理程序在日志記錄中的用法:

import logging
logger = logging.getLogger('example')
logger.setLevel(logging.INFO)
fileHandler = logging.FileHandler('p1.log')
fileHandler.setLevel(logging.INFO)
chl = logging.StreamHandler()
chl.setLevel(logging.INFO)
logger.addHandler(fileHandler)
logger.addHandler(chl)
logger.info('Information')

輸出:

Information

我們在上面的代碼中創(chuàng)建了兩個處理程序:fileHandler 和 chl。 fileHandler 將記錄發(fā)送到 p1.log 文件,chl 處理程序?qū)⒂涗洶l(fā)送到流。

但是,如果未指定流,則使用 sys.stderr。 最后,使用 addHandler 將處理程序添加到記錄器。

現(xiàn)在您一定想知道為什么我們設(shè)置了兩次級別:一次用于記錄器,另一次用于處理程序。 您可以刪除處理程序上的 setLevel(),這會將消息的所有級別過濾留給記錄器。

但是,如果您為處理程序和記錄器設(shè)置級別,則會出現(xiàn)不同的情況。 記錄器首先根據(jù)級別過濾消息; 因此,如果您將記錄器設(shè)置為 WARNING、INFO 或任何更高級別,并將處理程序設(shè)置為 DEBUG,您將不會收到任何 DEBUG 日志消息,因為記錄器首先會忽略它。

同樣,如果您將記錄器設(shè)置為 DEBUG 并將處理程序設(shè)置為任何更高級別,例如 INFO,您也不會收到任何 DEBUG 消息,因為處理程序?qū)⒕芙^它們。 即使記錄器批準(zhǔn)它,處理程序也會拒絕它(因為 INFO > DEBUG)。

因此,在為記錄器和處理程序設(shè)置級別時應(yīng)該足夠小心,以確保軟件正常工作。

總結(jié)

在本文中,我們討論了日志記錄 setLevel() 及其在 Python 中的工作方式。

日志記錄是一種非常有效的工具,通過記錄程序的流程并發(fā)現(xiàn)錯誤的可能性來管理軟件或程序的代碼。 對于 Python 中的日志記錄,我們根據(jù)它們的重要性為不同的日志消息設(shè)置不同的級別。

所有這些級別都是使用 setLevel 設(shè)置的,本文對此進行了非常詳細(xì)的解釋。

到此這篇關(guān)于在 Python 中使用 setLevel() 設(shè)置日志級別的文章就介紹到這了,更多相關(guān)Python setLevel() 設(shè)置日志級別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何將python的數(shù)據(jù)存儲到mysql數(shù)據(jù)庫中

    如何將python的數(shù)據(jù)存儲到mysql數(shù)據(jù)庫中

    在很多數(shù)據(jù)處理項目中,將數(shù)據(jù)存儲到數(shù)據(jù)庫中是非常常見的操作,下面這篇文章主要給大家介紹了關(guān)于如何將python的數(shù)據(jù)存儲到mysql數(shù)據(jù)庫中的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • Python中的迭代器詳解

    Python中的迭代器詳解

    這篇文章主要介紹迭代器,看完文章你可以了解到什么是可迭代對象、啥是迭代器、如何自定義迭代器、使用迭代器的優(yōu)勢,文中有詳細(xì)的代碼示例,需要的朋友可以參考下
    2023-08-08
  • Python使用正則表達(dá)式實現(xiàn)爬蟲數(shù)據(jù)抽取

    Python使用正則表達(dá)式實現(xiàn)爬蟲數(shù)據(jù)抽取

    這篇文章主要介紹了Python使用正則表達(dá)式實現(xiàn)爬蟲數(shù)據(jù)抽取,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Python中五種不同解析庫的應(yīng)用與提取速度對比

    Python中五種不同解析庫的應(yīng)用與提取速度對比

    這篇文章主要為大家詳細(xì)介紹了Python中五種不同解析庫的應(yīng)用與提取速度對比,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-05-05
  • Win10操作系統(tǒng)中PyTorch虛擬環(huán)境配置+PyCharm配置

    Win10操作系統(tǒng)中PyTorch虛擬環(huán)境配置+PyCharm配置

    本文主要介紹了Win10操作系統(tǒng)中PyTorch虛擬環(huán)境配置+PyCharm配置,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Python文本相似性計算之編輯距離詳解

    Python文本相似性計算之編輯距離詳解

    大家在做爬蟲的時候,很容易保持一些相似的數(shù)據(jù),這些相似的數(shù)據(jù)由于不完全一致,如果要通過人工一一的審核,將耗費大量的時間,大家對編輯距離應(yīng)該有所了解,這篇文章我們先來了解下什么是編輯距離,然后在學(xué)習(xí)Python如何計算編輯距離,下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-11-11
  • 如何用python繪制雷達(dá)圖

    如何用python繪制雷達(dá)圖

    這篇文章主要介紹了如何用python繪制雷達(dá)圖,幫助大家更好的利用python進行數(shù)據(jù)分析,感興趣的朋友可以了解下
    2021-04-04
  • Django+JS 實現(xiàn)點擊頭像即可更改頭像的方法示例

    Django+JS 實現(xiàn)點擊頭像即可更改頭像的方法示例

    這篇文章主要介紹了Django+JS 實現(xiàn)點擊頭像即可更改頭像的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • python亂序字符串排序的實現(xiàn)方式

    python亂序字符串排序的實現(xiàn)方式

    這篇文章主要介紹了python亂序字符串排序的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 使用Python高效實現(xiàn)Excel轉(zhuǎn)PDF

    使用Python高效實現(xiàn)Excel轉(zhuǎn)PDF

    在日常辦公和數(shù)據(jù)處理過程中,Excel 是我們最常用的工具,而 PDF 則是方便共享、打印和歸檔的格式,下面我們來看看如何使用 Python 把 Excel 轉(zhuǎn)換為 PDF吧
    2025-09-09

最新評論

聂拉木县| 遂昌县| 富川| 丽江市| 房产| 呼图壁县| 德阳市| 宜兴市| 巴彦淖尔市| 增城市| 岳阳县| 仙游县| 翁牛特旗| 馆陶县| 加查县| 武陟县| 岱山县| 海林市| 玛沁县| 儋州市| 阜宁县| 陆良县| 黄浦区| 大渡口区| 南安市| 吴忠市| 鄱阳县| 台北市| 夏邑县| 和政县| 溧阳市| 宜阳县| 班玛县| 河津市| 莱州市| 嘉黎县| 佛教| 达拉特旗| 曲阜市| 平塘县| 玛曲县|