python logging 模塊簡介
logging 模塊是 Python 標準庫中功能強大的日志記錄工具。它提供了一種標準化、可配置的方式來記錄應用程序事件、錯誤和調試信息。通過使用 logging 模塊,開發人員可以輕松跟蹤應用程序行為,簡化故障排除并提高代碼質量。
日志記錄等級
logging 模塊定義了幾個日志記錄等級,用于指示消息的重要性:
DEBUG:調試信息,用于記錄詳細的應用程序行為。
INFO:常規信息,用于記錄應用程序正常操作。
WARNING:警告消息,用于記錄潛在問題。
ERROR:錯誤消息,用于記錄應用程序錯誤。
CRITICAL:嚴重錯誤消息,用于記錄會中斷應用程序的關鍵錯誤。
配置日志記錄
logging 模塊允許通過多種方式配置日志記錄行為:
根記錄器:
import logging
# 創建根記錄器
root_logger = logging.getLogger()
# 設置日志記錄級別
root_logger.setLevel(logging.INFO)
# 添加控制臺處理程序
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
console_handler.setFORMatter(logging.Formatter("%(asctime)s - %(levelname)s - %(message)s"))
root_logger.addHandler(console_handler)
# 添加文件處理程序
file_handler = logging.FileHandler("my_app.log")
file_handler.setLevel(logging.WARNING)
file_handler.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(message)s"))
root_logger.addHandler(file_handler)
登錄后復制
自定義記錄器:
# 創建自定義記錄器
my_logger = logging.getLogger("my_app.module1")
# 設置日志記錄級別
my_logger.setLevel(logging.DEBUG)
# 添加流處理程序
stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.INFO)
stream_handler.setFormatter(logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s"))
my_logger.addHandler(stream_handler)
登錄后復制
日志記錄消息
配置好日志記錄設置后,開發人員可以使用以下方法記錄消息:
debug()
info()
warning()
error()
critical()
每個方法接收一個字符串消息,并在指定的日志記錄級別下記錄該消息。
my_logger.info("應用程序已啟動")
登錄后復制
日志記錄過濾器
logging 模塊提供了一種機制來過濾日志消息,僅記錄滿足特定條件的消息。過濾器可以基于日志記錄級別、消息文本或其他自定義標準。
# 創建一個過濾日志記錄級別的過濾器 level_filter = logging.Filter() level_filter.filter = lambda record: record.levelno >= logging.WARNING # 將過濾器添加到記錄器 my_logger.addFilter(level_filter)
登錄后復制
結論
Python logging 模塊是記錄應用程序事件和調試信息的強大工具。通過了解其功能和配置選項,開發人員可以設計健壯且可維護的應用程序。通過全面可視化應用程序行為,logging 模塊有助于提高代碼質量、簡化故障排除并增強調試過程。






