Python logging 模組的秘密配方:打造高效能日誌系統
python logging 模組是一個強大且多功能的工具,可用於在Python 應用程式中記錄和管理日誌訊息。透過掌握 logging 模組的秘密配方,您可以建立一個高效且易於維護的日誌系統,從而提高應用程式的可靠性和可偵錯性。
自訂日誌等級
#logging 模組提供了一組預先定義的日誌級別,包括 DEBUG、INFO、WARNING、ERROR 和 CRITICAL。您可以根據應用程式的需求自訂這些級別,建立更細化的日誌記錄層次結構。例如,您可以將自訂等級(如 "TRACE")新增至記錄應用程式中發生的詳細事件。
import logging # 创建自定义日志级别 TRACE = logging.DEBUG - 5 logging.addLevelName(TRACE, "TRACE") # 创建一个使用自定义级别的日志记录器 logger = logging.getLogger(__name__) logger.setLevel(TRACE)
使用多種日誌處理程序
日誌處理程序負責將日誌訊息傳送到不同的目標,例如檔案、控制台或遠端伺服器。 logging 模組提供了一系列內建處理程序,您還可以建立自訂處理程序來滿足特定需求。使用多個處理程序,您可以將日誌訊息同時記錄到多個目標,提供更全面的日誌記錄。
# 创建一个文件处理程序 file_handler = logging.FileHandler("my_log.log") # 创建一个控制台处理程序 console_handler = logging.StreamHandler() # 为日志记录器添加处理程序 logger.addHandler(file_handler) logger.addHandler(console_handler)
日誌格式化
日誌格式指定了日誌訊息的結構和佈局。 logging 模組提供了一個靈活的格式化系統,可讓您自訂日誌訊息的外觀。使用日誌格式,您可以包含訊息內容、時間戳記、日誌等級和呼叫程式碼來源等資訊。
# 创建一个自定义日志格式 fORMatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") # 将格式应用于处理程序 file_handler.setFormatter(formatter) console_handler.setFormatter(formatter)
過濾日誌訊息
#logging 模組可讓您過濾日誌訊息,只記錄符合特定條件的訊息。可根據日誌等級、訊息內容或其他自訂條件建立篩選器。過濾日誌訊息可以減少日誌產量,並確保只記錄對偵錯或分析有用的訊息。
# 创建一个过滤器以只记录 ERROR 和 CRITICAL 消息 filter = logging.Filter() filter.filter = lambda record: record.levelno >= logging.ERROR # 将过滤器应用于一个处理程序 file_handler.addFilter(filter)
日誌傳播
日誌傳播控制了日誌訊息的傳播方式。預設情況下,日誌訊息會傳播到應用程式中所有包含處理程序的日誌記錄器。但是,您可以透過設定日誌傳播來控制訊息在日誌記錄器層次結構中的流動。這有助於防止重複和冗餘日誌訊息。
# 禁用日志传播 logger.propagate = False
日誌旋轉
日誌旋轉限制了單一日誌檔案的最大大小,從而防止檔案變得過大而難以管理。 logging 模組提供了一個 FileHandler 類,支援自動日誌旋轉,當日誌檔案達到指定大小或時間限制時,可以建立新的日誌檔案。
# 创建一个带日志旋转的文件处理程序 file_handler = logging.handlers.RotatingFileHandler("my_log.log", maxBytes=1024, backupCount=5)
效能最佳化
logging 模組在記錄日誌訊息時會產生一些開銷。為了優化效能,您可以使用以下技巧:
- 僅記錄對調試或分析有用的信息。
- 使用篩選器減少日誌輸出。
- 使用高效率的日誌格式。
- 避免頻繁建立和銷毀日誌記錄器。
- 使用非同步日誌記錄器以減少主執行緒阻塞。
透過掌握 Python logging 模組的這些秘密配方,您可以建立強大的日誌系統,提高應用程式的可靠性和可偵錯性。
以上是Python logging 模組的秘密配方:打造高效能日誌系統的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Linux終端中查看Python版本時遇到權限問題的解決方法當你在Linux終端中嘗試查看Python的版本時,輸入python...

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

在使用Python的pandas庫時,如何在兩個結構不同的DataFrame之間進行整列複製是一個常見的問題。假設我們有兩個Dat...

Uvicorn是如何持續監聽HTTP請求的? Uvicorn是一個基於ASGI的輕量級Web服務器,其核心功能之一便是監聽HTTP請求並進�...

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

攻克Investing.com的反爬蟲策略許多人嘗試爬取Investing.com(https://cn.investing.com/news/latest-news)的新聞數據時,常常�...
