首頁 >後端開發 >Python教學 >Python logging 模組:專家級教程,從入門到精通

Python logging 模組:專家級教程,從入門到精通

WBOY
WBOY轉載
2024-03-08 08:34:02395瀏覽

Python logging 模块:专家级教程,从入门到精通

簡介

#logging 模組是 python 中用於日誌記錄的標準函式庫。它提供了對應用程式中事件進行日誌記錄的統一介面,並允許開發人員定義日誌層級的細粒度控制、格式化日誌訊息以及將日誌輸出到各種目標(例如檔案、控制台或網路套接字)。

入門

建立一個 Logger

要開始日誌記錄,首先需要建立一個 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 模組定義了以下日誌等級(從最低到最高):

  • DEBUG:用於調試目的的詳細資訊。
  • INFO:用於常規應用程式訊息。
  • WARNING:用來引起注意的問題。
  • ERROR:用於錯誤和例外。
  • CRITICAL:用於嚴重錯誤或應用程式崩潰。
  • NOTSET:停用日誌記錄。

可以將日誌等級設定為 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 模組

可以透過自訂類別和函數擴充 logging 模組,以實現更高級或特定的日誌記錄功能。例如,可以建立自己的處理器或過濾器來滿足特定要求。

結論

Python logging 模組是一個強大的工具,用於應用程式中的日誌記錄。它提供了靈活性和可自訂性,允許開發人員根據應用程式的特定需求建立日誌記錄系統。透過遵循本教學中概述的基本原則和高級技術,可以最大限度地利用 logging 模組,並為應用程式實現高效且資訊豐富的日誌記錄。

以上是Python logging 模組:專家級教程,從入門到精通的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:lsjlt.com。如有侵權,請聯絡admin@php.cn刪除

相關文章

看更多