首頁 後端開發 Python教學 Python logging 模組的秘技:解鎖其無限潛力

Python logging 模組的秘技:解鎖其無限潛力

Mar 08, 2024 am 08:52 AM
偵錯 效能 日誌記錄 可維護性

Python logging 模块的秘籍:解锁其无限潜力

深入 Python logging 模組的寶庫

#python logging 模組是記錄和處理應用程式日誌的強大工具,它提供了廣泛的功能和可自訂性,讓開發人員能夠收集有價值的信息,用於調試、分析和監視。本文將揭示 Python logging 模組的秘籍,解鎖定其無限潛力,幫助您創建健壯、可維護且高效的應用程式。

等級與篩選器:控制日誌資訊的粒度

logging 模組可讓您根據日誌資訊的嚴重性對資訊進行分級,從 DEBUG 到 CRITICAL。您可以使用篩選器控制哪些訊息被記錄和處理,從而避免日誌檔案被無關資訊淹沒。以下範例展示如何配置一個過濾器,僅記錄 DEBUG 和 INFO 層級的訊息:

import logging

# 设置日志级别
logging.basicConfig(level=logging.INFO)

# 创建一个过滤器,仅记录 DEBUG 和 INFO 消息
filter = logging.Filter()
filter.filter = lambda record: record.levelno in (logging.DEBUG, logging.INFO)

# 为根记录器添加过滤器
logging.getLogger().addFilter(filter)
登入後複製

格式化器:自訂日誌資訊的呈現方式

logging 模組提供了一系列格式化器,用於自訂日誌資訊的呈現方式。您可以控制訊息格式、時間戳記格式以及其他元資料。透過自訂格式化器,您可以建立有意義且可讀的日誌文件,以便於快速識別和分析問題。以下範例展示如何建立一個自訂格式化器,新增時間戳記和訊息層級:

import logging

# 创建一个自定义格式化器
fORMatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")

# 为根记录器设置自定义格式化器
logging.getLogger().handlers[0].setFormatter(formatter)
登入後複製

處理器:將日誌訊息傳送至不同目的地

logging 模組可讓您將日誌資訊傳送至不同的目的地,例如控制台、檔案或遠端伺服器。透過使用處理器,您可以靈活地控制日誌資訊的儲存和分發。以下範例展示如何設定一個處理器,將日誌資訊寫入檔案:

import logging

# 创建一个文件处理器,将日志信息写入文件
file_handler = logging.FileHandler("my_log.log")

# 为根记录器添加文件处理器
logging.getLogger().addHandler(file_handler)
登入後複製

記錄器層次結構:組織與過濾日誌資訊

logging 模組使用記錄器層次結構來組織和篩選日誌資訊。每個記錄器都有一個名稱,用於唯一地識別其在層次結構中的位置。子記錄器繼承其父記錄器的設置,除非另行配置。透過使用記錄器層次結構,您可以有條理地記錄日誌訊息,並透過設定篩選器輕鬆過濾不相關的資訊。以下範例展示如何建立子記錄器,並為其設定不同的日誌等級:

import logging

# 创建一个根记录器
root_logger = logging.getLogger()

# 创建一个子记录器,名称为 "my_module"
my_logger = logging.getLogger("my_module")

# 为子记录器设置不同的日志级别
my_logger.setLevel(logging.DEBUG)
登入後複製

上下文管理器:暫時修改日誌設定

logging 模組提供了一個上下文管理器,可讓您暫時修改日誌設置,而不會影響全域配置。這對於在特定程式碼區塊中啟用或停用日誌非常有用。以下範例展示如何使用上下文管理器暫時停用日誌記錄:

import logging

with logging.disable(logging.CRITICAL):
# 在此代码块中禁用日志记录
pass
登入後複製

透過 Python logging 模組提升應用程式品質

#透過掌握 Python logging 模組的秘籍,您可以提升應用程式的品質。透過精心控制日誌資訊的粒度、呈現方式、儲存方式和組織方式,您可以建立健壯、可維護且高效的應用程序,它們可以從詳細的日誌資訊中獲益。

以上是Python logging 模組的秘技:解鎖其無限潛力的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

如何使用LeakSanitizer調試C++記憶體洩漏? 如何使用LeakSanitizer調試C++記憶體洩漏? Jun 02, 2024 pm 09:46 PM

如何使用LeakSanitizer調試C++記憶體洩漏?安裝LeakSanitizer。透過編譯標誌啟用LeakSanitizer。運行應用程式並分析LeakSanitizer報告。識別記憶體分配類型和分配位置。修復記憶體洩漏,確保釋放所有動態分配的記憶體。

不同Java框架的效能對比 不同Java框架的效能對比 Jun 05, 2024 pm 07:14 PM

不同Java框架的效能比較:RESTAPI請求處理:Vert.x最佳,請求速率達SpringBoot2倍,Dropwizard3倍。資料庫查詢:SpringBoot的HibernateORM優於Vert.x及Dropwizard的ORM。快取操作:Vert.x的Hazelcast客戶端優於SpringBoot及Dropwizard的快取機制。合適框架:根據應用需求選擇,Vert.x適用於高效能Web服務,SpringBoot適用於資料密集型應用,Dropwizard適用於微服務架構。

Java 並發程式設計如何進行並發測試與除錯? Java 並發程式設計如何進行並發測試與除錯? May 09, 2024 am 09:33 AM

並發測試和調試Java並發程式設計中的並發測試和調試至關重要,以下技術可供使用:並發測試:單元測試:隔離並測試單一並發任務。整合測試:測試多個並發任務之間的交互作用。負載測試:評估應用程式在高負載下的效能和可擴展性。並發調試:斷點:暫停線程執行並檢查變數或執行程式碼。日誌記錄:記錄線程事件和狀態。堆疊追蹤:識別異常源頭。視覺化工具:監視執行緒活動和資源使用情況。

C++中如何優化多執行緒程式的效能? C++中如何優化多執行緒程式的效能? Jun 05, 2024 pm 02:04 PM

優化C++多執行緒效能的有效技術包括:限制執行緒數量,避免爭用資源。使用輕量級互斥鎖,減少爭用。優化鎖的範圍,最小化等待時間。採用無鎖定資料結構,提高並發性。避免忙等,透過事件通知執行緒資源可用性。

如何調試 PHP 非同步程式碼 如何調試 PHP 非同步程式碼 May 31, 2024 am 09:08 AM

調試PHP非同步程式碼的工具包括:Psalm:靜態分析工具,可發現潛在錯誤。 ParallelLint:檢查非同步程式碼並提供建議的工具。 Xdebug:用於偵錯PHP應用程式的擴展,可透過啟用會話並逐步執行程式碼來偵錯。其他技巧還包括使用日誌記錄、斷言、局部運行程式碼和編寫單元測試。

C++類別設計中如何進行錯誤處理與記錄? C++類別設計中如何進行錯誤處理與記錄? Jun 02, 2024 am 09:45 AM

C++類別設計中的錯誤處理和日誌記錄包括:異常處理:捕獲並處理異常,使用自訂異常類別提供特定錯誤訊息。錯誤碼:使用整數或枚舉表示錯誤條件,在回傳值中傳回。斷言:驗證預置和後置條件,不成立時引發異常。 C++函式庫日誌:使用std::cerr和std::clog進行基本日誌記錄。外部日誌庫:整合第三方庫以獲得高級功能,如等級過濾和日誌檔案旋轉。自訂日誌類:建立自己的日誌類,抽象底層機制,提供通用介面記錄不同等級資訊。

PHP 偵錯錯誤:常見錯誤的指南 PHP 偵錯錯誤:常見錯誤的指南 Jun 05, 2024 pm 03:18 PM

常見的PHP偵錯錯誤包括:語法錯誤:檢查程式碼語法,確保沒有錯誤。未定義變數:在使用變數之前,請確保已將其初始化並賦值。缺少分號:為所有程式碼區塊加上分號。函數未定義:檢查函數名稱拼字是否正確,並確保已載入正確的檔案或PHP擴充。

Java框架的效能比較 Java框架的效能比較 Jun 04, 2024 pm 03:56 PM

根據基準測試,對於小型、高效能應用程序,Quarkus(快速啟動、低記憶體)或Micronaut(TechEmpower優異)是理想選擇。 SpringBoot適用於大型、全端應用程序,但啟動時間和記憶體佔用稍慢。

See all articles