Python Logging 模組支援自訂日誌等級,讓開發者根據需要建立特定的等級。若要自訂日誌等級,請使用 logging.addLevelName()
函數:
import logging # 定义自定义日志等级 CUSTOM_LEVEL = 35 # 为自定义等级添加名称 logging.addLevelName(CUSTOM_LEVEL, "CUSTOM")
現在,您可以使用自訂等級來記錄訊息:
logging.log(CUSTOM_LEVEL, "自定义日志消息")
處理程序負責將日誌訊息寫入檔案、控制台或其他目的地。若要建立自訂處理程序,請繼承自 logging.Handler
類別:
class CustomHandler(logging.Handler): def emit(self, record): # 自定义日志记录逻辑 pass
然後將自訂處理程序新增至日誌記錄器:
logger = logging.getLogger() logger.addHandler(CustomHandler())
格式化程式控制日誌訊息的佈局。若要建立自訂格式化程序,請繼承自 logging.F<strong class="keylink">ORM</strong>atter
類別:
class CustomFormatter(logging.Formatter): def format(self, record): # 自定义格式化逻辑 return formatted_message
然後將自訂格式化程式附加到處理程序:
handler = logging.FileHandler("log.txt") formatter = CustomFormatter() handler.setFormatter(formatter)
為確保日誌記錄不會對應用程式效能產生負面影響,請考慮以下最佳化技巧:
logging.handlers.QueueHandler
將日誌記錄操作移出主執行緒。 logging.handlers.RotatingFileHandler
)或考慮第三方日誌記錄庫(例如gunicorn.glogging
) 。 logging.FileHandler.maxBytes
和 logging.handlers.RotatingFileHandler.backupCount
# 參數管理日誌檔案大小。 為了確保日誌記錄配置的有效性,請遵循以下最佳實踐:
logging.DEBUG
進行詳細診斷,logging.INFO
進行常規訊息,logging .ERROR
進行錯誤。 logging.Filter
類別過濾來自特定來源或具有特定訊息的日誌記錄。 透過掌握進階自訂和最佳化技術,Python Logging 模組可以提供全面且高效的日誌記錄解決方案。透過自訂日誌等級、建立自訂處理程序、格式化日誌訊息以及最佳化日誌記錄效能,開發者可以滿足其特定應用程式的需求,確保日誌記錄為他們的系統提供有價值的見解。
以上是Python Logging 模組進階指南:自訂和最佳化日誌記錄的詳細內容。更多資訊請關注PHP中文網其他相關文章!