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

Python logging日志模塊的核心用法與實(shí)操技巧

 更新時(shí)間:2026年03月13日 08:56:45   作者:獨(dú)斷萬(wàn)古他化  
logging 是 Python 標(biāo)準(zhǔn)庫(kù)中的一個(gè)模塊,它提供了靈活的日志記錄功能,通過(guò) logging,開(kāi)發(fā)者可以方便地將日志信息輸出到控制臺(tái)、文件、網(wǎng)絡(luò)等多種目標(biāo),本文給大家介紹了Python logging日志模塊的核心用法與實(shí)操技巧,需要的朋友可以參考下

logging 日志介紹

logging 是 Python 標(biāo)準(zhǔn)庫(kù)中的一個(gè)模塊,它提供了靈活的日志記錄功能。通過(guò) logging,開(kāi)發(fā)者可以方便地將日志信息輸出到控制臺(tái)、文件、網(wǎng)絡(luò)等多種目標(biāo),同時(shí)支持不同級(jí)別的日志記錄,以滿足不同場(chǎng)景下的需求。

一、logging 使用示例

1.1 全局logging基礎(chǔ)使用

import logging

logging.basicConfig(level=logging.INFO)

logging.debug('This is a debug message')
logging.info('This is an info message')
logging.warning('This is a warning message')
logging.error('This is an error message')
logging.critical('This is a critical message')

1.2 自定義logger并輸出到控制臺(tái)

# 導(dǎo)入 logging 模塊
import logging

logging.basicConfig(level=logging.INFO)

# 獲取一個(gè)日志記錄器對(duì)象,名稱為當(dāng)前模塊的名稱
logger = logging.getLogger(__name__)

# 設(shè)置日志記錄器的級(jí)別為 DEBUG
# 這意味著所有級(jí)別為 DEBUG 及以上的日志都會(huì)被記錄
logger.setLevel(logging.DEBUG)

if __name__ == "__main__":
    logger.debug('This is a debug message')
    logger.info('This is an info message')
    logger.warning('This is a warning message')
    logger.error('This is an error message')
    logger.critical('This is a critical message')

執(zhí)行結(jié)果

This is a warning message
This is an error message
This is a critical message

1.3 自定義logger并輸出到日志文件

# 導(dǎo)入 logging 模塊
import logging

# 獲取一個(gè)日志記錄器對(duì)象,名稱為當(dāng)前模塊的名稱
logger = logging.getLogger(__name__)

# 設(shè)置日志記錄器的級(jí)別為 DEBUG
# 這意味著所有級(jí)別為 DEBUG 及以上的日志都會(huì)被記錄
logger.setLevel(logging.DEBUG)

# 創(chuàng)建一個(gè) FileHandler 對(duì)象,指定日志文件的名稱為 "test.log"
# 這個(gè)處理器會(huì)將日志信息寫入到指定的文件中
handler = logging.FileHandler(filename="test.log")

# 將這個(gè)處理器添加到日志記錄器中
# 這樣,日志記錄器就會(huì)使用這個(gè)處理器來(lái)處理日志信息
logger.addHandler(handler)

if __name__ == "__main__":
    logger.debug('This is a debug message')
    logger.info('This is an info message')
    logger.warning('This is a warning message')
    logger.error('This is an error message')
    logger.critical('This is a critical message')

執(zhí)行結(jié)果(test.log文件內(nèi)容)

This is a debug message
This is an info message
This is a warning message
This is an error message
This is a critical message

1.4 設(shè)置自定義日志格式

# 導(dǎo)入 logging 模塊
import logging

# 獲取一個(gè)日志記錄器對(duì)象,名稱為當(dāng)前模塊的名稱
logger = logging.getLogger(__name__)

# 設(shè)置日志記錄器的級(jí)別為 DEBUG
# 這意味著所有級(jí)別為 DEBUG 及以上的日志都會(huì)被記錄
logger.setLevel(logging.DEBUG)

# 創(chuàng)建一個(gè) FileHandler 對(duì)象,指定日志文件的名稱為 "test.log"
# 這個(gè)處理器會(huì)將日志信息寫入到指定的文件中
handler = logging.FileHandler(filename="test.log")

# 創(chuàng)建一個(gè)日志格式器對(duì)象
formatter = logging.Formatter(
    "%(asctime)s %(levelname)s [%(name)s] [%(filename)s (%(funcName)s:%(lineno)d)] - %(message)s"
)

# 將格式器設(shè)置到處理器上
handler.setFormatter(formatter)

# 將這個(gè)處理器添加到日志記錄器中
# 這樣,日志記錄器就會(huì)使用這個(gè)處理器來(lái)處理日志信息
logger.addHandler(handler)

if __name__ == "__main__":
    logger.debug('This is a debug message')
    logger.info('This is an info message')
    logger.warning('This is a warning message')
    logger.error('This is an error message')
    logger.critical('This is a critical message')

二、關(guān)鍵知識(shí)點(diǎn)說(shuō)明

2.1 日志記錄器獲取

通過(guò) logging.getLogger(__name__) 獲取日志記錄器對(duì)象,name 為當(dāng)前模塊的名稱。使用模塊名稱作為日志記錄器的名稱有助于在大型項(xiàng)目中區(qū)分不同模塊的日志。

2.2 日志級(jí)別規(guī)則

日志級(jí)別金字塔(優(yōu)先級(jí)從低到高):DEBUG < INFO < WARNING < ERROR < CRITICAL

  • 日志記錄器的級(jí)別通過(guò) logger.setLevel(logging.XXX) 設(shè)置
  • 只有高于或等于設(shè)定級(jí)別的日志才會(huì)被處理和記錄

2.3 日志處理器

  • FileHandler:用于將日志寫入文件,通過(guò) logging.FileHandler(filename="文件名") 創(chuàng)建
  • StreamHandler:用于將日志輸出到控制臺(tái)(示例中注釋部分可啟用)
  • 一個(gè)日志記錄器可以添加多個(gè)處理器,實(shí)現(xiàn)日志多目標(biāo)輸出(如同時(shí)輸出到控制臺(tái)和文件)

2.4 日志格式占位符說(shuō)明

格式占位符說(shuō)明
%(asctime)s日志記錄的時(shí)間戳,通常顯示為日期和時(shí)間。
%(levelname)s日志級(jí)別(如 DEBUG、INFO、WARNING、ERROR、CRITICAL)。
%(name)s日志記錄器的名稱,通常為模塊名稱。
%(filename)s日志記錄發(fā)生的文件名。
%(funcName)s日志記錄發(fā)生的函數(shù)名。
%(lineno)d日志記錄發(fā)生的行號(hào)。
%(message)s日志消息本身。

2.5 格式器與處理器綁定

通過(guò) handler.setFormatter(formatter) 將格式器對(duì)象設(shè)置到處理器上,處理器會(huì)按照指定格式格式化日志信息后輸出。

通過(guò)這種方式,可以控制日志信息的輸出格式,可以包含如:時(shí)間戳、日志級(jí)別、文件名、函數(shù)名、行號(hào)等。

以上就是Python logging日志模塊的核心用法與實(shí)操技巧的詳細(xì)內(nèi)容,更多關(guān)于Python logging日志模塊的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Flask框架通過(guò)Flask_login實(shí)現(xiàn)用戶登錄功能示例

    Flask框架通過(guò)Flask_login實(shí)現(xiàn)用戶登錄功能示例

    這篇文章主要介紹了Flask框架通過(guò)Flask_login實(shí)現(xiàn)用戶登錄功能,結(jié)合實(shí)例形式較為詳細(xì)的分析了flask框架使用Flask_login實(shí)現(xiàn)用戶登陸功能的具體操作步驟、相關(guān)實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下
    2018-07-07
  • Python+drawpad實(shí)現(xiàn)CPU監(jiān)控小程序

    Python+drawpad實(shí)現(xiàn)CPU監(jiān)控小程序

    這篇文章主要為大家詳細(xì)介紹了如何利用Python+drawpad實(shí)現(xiàn)一個(gè)簡(jiǎn)單的CPU監(jiān)控小程序,文中示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下
    2022-08-08
  • Python?pygame項(xiàng)目實(shí)戰(zhàn)英雄動(dòng)畫特效實(shí)現(xiàn)

    Python?pygame項(xiàng)目實(shí)戰(zhàn)英雄動(dòng)畫特效實(shí)現(xiàn)

    這篇文章主要為大家介紹了Python?pygame項(xiàng)目實(shí)戰(zhàn)英雄動(dòng)畫特效實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Pycharm 創(chuàng)建 Django admin 用戶名和密碼的實(shí)例

    Pycharm 創(chuàng)建 Django admin 用戶名和密碼的實(shí)例

    今天小編就為大家分享一篇Pycharm 創(chuàng)建 Django admin 用戶名和密碼的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • 使用apiDoc實(shí)現(xiàn)python接口文檔編寫

    使用apiDoc實(shí)現(xiàn)python接口文檔編寫

    今天小編就為大家分享一篇使用apiDoc實(shí)現(xiàn)python接口文檔編寫,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Django框架中render_to_response()函數(shù)的使用方法

    Django框架中render_to_response()函數(shù)的使用方法

    這篇文章主要介紹了Django框架中render_to_response()函數(shù)的使用方法,注意范例中該方法的參數(shù)的使用,需要的朋友可以參考下
    2015-07-07
  • Postman安裝與使用詳細(xì)教程 附postman離線安裝包

    Postman安裝與使用詳細(xì)教程 附postman離線安裝包

    這篇文章主要介紹了Postman安裝與使用詳細(xì)教程 附postman離線安裝包,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Django2 連接MySQL及model測(cè)試實(shí)例分析

    Django2 連接MySQL及model測(cè)試實(shí)例分析

    這篇文章主要介紹了Django2 連接MySQL及model測(cè)試,結(jié)合實(shí)例形式分析了Django2框架使用pymysql庫(kù)進(jìn)行mysql數(shù)據(jù)庫(kù)連接與model調(diào)用測(cè)試方法,需要的朋友可以參考下
    2019-12-12
  • python logging模塊的使用總結(jié)

    python logging模塊的使用總結(jié)

    這篇文章主要介紹了python logging模塊使用總結(jié)以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。,需要的朋友可以參考下
    2019-07-07
  • Python如何利用IMAP實(shí)現(xiàn)郵箱客戶端功能

    Python如何利用IMAP實(shí)現(xiàn)郵箱客戶端功能

    IMAP是另一種讀取電子郵件的協(xié)議,IMAP是讀取郵件服務(wù)器的電子郵件與公布欄信息的方法,也就是說(shuō)IMAP 允許客戶端的郵件程序存取遠(yuǎn)程的信息,這篇文章主要給大家介紹了關(guān)于Python如何利用IMAP實(shí)現(xiàn)郵箱客戶端功能的相關(guān)資料,需要的朋友可以參考下
    2021-09-09

最新評(píng)論

太湖县| 丰宁| 绵竹市| 兴宁市| 广安市| 囊谦县| 万宁市| 京山县| 治多县| 东丽区| 榆社县| 鄂伦春自治旗| 普定县| 克拉玛依市| 剑川县| 清水河县| 双牌县| 来凤县| 缙云县| 湖口县| 汶上县| 华安县| 沽源县| 仲巴县| 墨脱县| 婺源县| 衢州市| 莱芜市| 东丽区| 林周县| 镇赉县| 灵台县| 新蔡县| 清原| 青岛市| 佳木斯市| 伊吾县| 永新县| 图们市| 南雄市| 会泽县|