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中文網其他相關文章!

Python列表切片的基本語法是list[start:stop:step]。 1.start是包含的第一個元素索引,2.stop是排除的第一個元素索引,3.step決定元素之間的步長。切片不僅用於提取數據,還可以修改和反轉列表。

ListSoutPerformarRaysin:1)DynamicsizicsizingandFrequentInsertions/刪除,2)儲存的二聚體和3)MemoryFeliceFiceForceforseforsparsedata,butmayhaveslightperformancecostsinclentoperations。

toConvertapythonarraytoalist,usEthelist()constructororageneratorexpression.1)intimpthearraymoduleandcreateanArray.2)USELIST(ARR)或[XFORXINARR] to ConconverTittoalist,請考慮performorefformanceandmemoryfformanceandmemoryfformienceforlargedAtasetset。

choosearraysoverlistsinpythonforbetterperformanceandmemoryfliceSpecificScenarios.1)largenumericaldatasets:arraysreducememoryusage.2)績效 - 臨界雜貨:arraysoffersoffersOffersOffersOffersPoostSfoostSforsssfortasssfortaskslikeappensearch orearch.3)testessenforcety:arraysenforce:arraysenforc

在Python中,可以使用for循環、enumerate和列表推導式遍歷列表;在Java中,可以使用傳統for循環和增強for循環遍歷數組。 1.Python列表遍歷方法包括:for循環、enumerate和列表推導式。 2.Java數組遍歷方法包括:傳統for循環和增強for循環。

本文討論了版本3.10中介紹的Python的新“匹配”語句,該語句與其他語言相同。它增強了代碼的可讀性,並為傳統的if-elif-el提供了性能優勢

Python中的功能註釋將元數據添加到函數中,以進行類型檢查,文檔和IDE支持。它們增強了代碼的可讀性,維護,並且在API開發,數據科學和圖書館創建中至關重要。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。