Python logging日志模塊的核心用法與實操技巧
logging 日志介紹
logging 是 Python 標準庫中的一個模塊,它提供了靈活的日志記錄功能。通過 logging,開發(fā)者可以方便地將日志信息輸出到控制臺、文件、網(wǎng)絡(luò)等多種目標,同時支持不同級別的日志記錄,以滿足不同場景下的需求。
一、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并輸出到控制臺
# 導入 logging 模塊
import logging
logging.basicConfig(level=logging.INFO)
# 獲取一個日志記錄器對象,名稱為當前模塊的名稱
logger = logging.getLogger(__name__)
# 設(shè)置日志記錄器的級別為 DEBUG
# 這意味著所有級別為 DEBUG 及以上的日志都會被記錄
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并輸出到日志文件
# 導入 logging 模塊
import logging
# 獲取一個日志記錄器對象,名稱為當前模塊的名稱
logger = logging.getLogger(__name__)
# 設(shè)置日志記錄器的級別為 DEBUG
# 這意味著所有級別為 DEBUG 及以上的日志都會被記錄
logger.setLevel(logging.DEBUG)
# 創(chuàng)建一個 FileHandler 對象,指定日志文件的名稱為 "test.log"
# 這個處理器會將日志信息寫入到指定的文件中
handler = logging.FileHandler(filename="test.log")
# 將這個處理器添加到日志記錄器中
# 這樣,日志記錄器就會使用這個處理器來處理日志信息
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è)置自定義日志格式
# 導入 logging 模塊
import logging
# 獲取一個日志記錄器對象,名稱為當前模塊的名稱
logger = logging.getLogger(__name__)
# 設(shè)置日志記錄器的級別為 DEBUG
# 這意味著所有級別為 DEBUG 及以上的日志都會被記錄
logger.setLevel(logging.DEBUG)
# 創(chuàng)建一個 FileHandler 對象,指定日志文件的名稱為 "test.log"
# 這個處理器會將日志信息寫入到指定的文件中
handler = logging.FileHandler(filename="test.log")
# 創(chuàng)建一個日志格式器對象
formatter = logging.Formatter(
"%(asctime)s %(levelname)s [%(name)s] [%(filename)s (%(funcName)s:%(lineno)d)] - %(message)s"
)
# 將格式器設(shè)置到處理器上
handler.setFormatter(formatter)
# 將這個處理器添加到日志記錄器中
# 這樣,日志記錄器就會使用這個處理器來處理日志信息
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)鍵知識點說明
2.1 日志記錄器獲取
通過 logging.getLogger(__name__) 獲取日志記錄器對象,name 為當前模塊的名稱。使用模塊名稱作為日志記錄器的名稱有助于在大型項目中區(qū)分不同模塊的日志。
2.2 日志級別規(guī)則
日志級別金字塔(優(yōu)先級從低到高):DEBUG < INFO < WARNING < ERROR < CRITICAL
- 日志記錄器的級別通過
logger.setLevel(logging.XXX)設(shè)置 - 只有高于或等于設(shè)定級別的日志才會被處理和記錄
2.3 日志處理器
- FileHandler:用于將日志寫入文件,通過
logging.FileHandler(filename="文件名")創(chuàng)建 - StreamHandler:用于將日志輸出到控制臺(示例中注釋部分可啟用)
- 一個日志記錄器可以添加多個處理器,實現(xiàn)日志多目標輸出(如同時輸出到控制臺和文件)
2.4 日志格式占位符說明
| 格式占位符 | 說明 |
|---|---|
| %(asctime)s | 日志記錄的時間戳,通常顯示為日期和時間。 |
| %(levelname)s | 日志級別(如 DEBUG、INFO、WARNING、ERROR、CRITICAL)。 |
| %(name)s | 日志記錄器的名稱,通常為模塊名稱。 |
| %(filename)s | 日志記錄發(fā)生的文件名。 |
| %(funcName)s | 日志記錄發(fā)生的函數(shù)名。 |
| %(lineno)d | 日志記錄發(fā)生的行號。 |
| %(message)s | 日志消息本身。 |
2.5 格式器與處理器綁定
通過 handler.setFormatter(formatter) 將格式器對象設(shè)置到處理器上,處理器會按照指定格式格式化日志信息后輸出。
通過這種方式,可以控制日志信息的輸出格式,可以包含如:時間戳、日志級別、文件名、函數(shù)名、行號等。
以上就是Python logging日志模塊的核心用法與實操技巧的詳細內(nèi)容,更多關(guān)于Python logging日志模塊的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Flask框架通過Flask_login實現(xiàn)用戶登錄功能示例
這篇文章主要介紹了Flask框架通過Flask_login實現(xiàn)用戶登錄功能,結(jié)合實例形式較為詳細的分析了flask框架使用Flask_login實現(xiàn)用戶登陸功能的具體操作步驟、相關(guān)實現(xiàn)技巧與操作注意事項,需要的朋友可以參考下2018-07-07
Python+drawpad實現(xiàn)CPU監(jiān)控小程序
這篇文章主要為大家詳細介紹了如何利用Python+drawpad實現(xiàn)一個簡單的CPU監(jiān)控小程序,文中示例代碼講解詳細,感興趣的小伙伴可以嘗試一下2022-08-08
Python?pygame項目實戰(zhàn)英雄動畫特效實現(xiàn)
這篇文章主要為大家介紹了Python?pygame項目實戰(zhàn)英雄動畫特效實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08
Pycharm 創(chuàng)建 Django admin 用戶名和密碼的實例
今天小編就為大家分享一篇Pycharm 創(chuàng)建 Django admin 用戶名和密碼的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
Django框架中render_to_response()函數(shù)的使用方法
這篇文章主要介紹了Django框架中render_to_response()函數(shù)的使用方法,注意范例中該方法的參數(shù)的使用,需要的朋友可以參考下2015-07-07
Postman安裝與使用詳細教程 附postman離線安裝包
這篇文章主要介紹了Postman安裝與使用詳細教程 附postman離線安裝包,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03

