#logging 模組是 python 中用於日誌記錄的標準函式庫。它提供了對應用程式中事件進行日誌記錄的統一介面,並允許開發人員定義日誌層級的細粒度控制、格式化日誌訊息以及將日誌輸出到各種目標(例如檔案、控制台或網路套接字)。
要開始日誌記錄,首先需要建立一個 logger 物件。 logger 可以透過 logging.getLogger(name)
函數創建,其中 name
是一個標識符字串,用於識別logger。
import logging # 创建一个名为 "my_logger" 的 logger logger = logging.getLogger("my_logger")
可以使用 logger.log(level, msg, *args, **kwargs)
方法來記錄日誌訊息,其中:
level
:日誌訊息的等級。 msg
:日誌訊息的。 *args
和 **kwargs
:可選參數,用於格式化日誌訊息。 logger.info("程序已启动") logger.error("发生错误!")
logging 模組定義了以下日誌等級(從最低到最高):
可以將日誌等級設定為 logger.level
屬性。例如,要將 my_logger
的等級設為 WARNING
,可以使用:
logger.level = logging.WARNING
格式化器用於控制日誌訊息的外觀。可以透過 logging.F<strong class="keylink">ORM</strong>atter
類別建立格式化器,它具有以下參數:
fmt
:日誌訊息的格式字串。 datefmt
:日期和時間的格式字串(可選)。 # 创建一个格式化器,包含时间戳、日志级别和日志消息 formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
處理器用於將日誌訊息輸出到特定目標。 logging 模組提供了一些開箱即用的處理器,例如:
logging.StreamHandler
:將日誌訊息輸出到控制台。 logging.FileHandler
:將日誌訊息輸出到檔案。 logging.<strong class="keylink">Socket</strong>Handler
:將日誌訊息輸出到網路套接字。 # 创建一个处理器,将日志消息输出到控制台 handler = logging.StreamHandler() # 将格式化器添加到处理器 handler.setFormatter(formatter) # 将处理器添加到 logger logger.addHandler(handler)
過濾器用於根據特定條件篩選日誌訊息。 logging 模組提供了以下篩選器:
logging.Filter
:基本過濾器,允許或拒絕日誌訊息。 logging.LevelFilter
:基於日誌等級篩選日誌訊息。 logging.MessageFilter
:基於日誌訊息本身篩選日誌訊息。 # 创建一个过滤器,仅允许 INFO 和 WARNING 级别的日志消息 filter = logging.LevelFilter(logging.INFO) # 将过滤器添加到处理器 handler.addFilter(filter)
Python logging 模組支援層次結構日誌記錄,其中 logger 可以繼承其父 logger 的屬性和行為。這允許建立一個具有不同層級的日誌細粒度的日誌記錄結構。
還可以建立自訂日誌記錄級別,以便更好地適應應用程式的特定需求。這可以透過 logging.addLevelName(level_name, level_value)
函數實作。
可以透過自訂類別和函數擴充 logging 模組,以實現更高級或特定的日誌記錄功能。例如,可以建立自己的處理器或過濾器來滿足特定要求。
Python logging 模組是一個強大的工具,用於應用程式中的日誌記錄。它提供了靈活性和可自訂性,允許開發人員根據應用程式的特定需求建立日誌記錄系統。透過遵循本教學中概述的基本原則和高級技術,可以最大限度地利用 logging 模組,並為應用程式實現高效且資訊豐富的日誌記錄。
以上是Python logging 模組:專家級教程,從入門到精通的詳細內容。更多資訊請關注PHP中文網其他相關文章!