首頁 後端開發 Python教學 Python logging 模組解密:揭露其不為人知的一面

Python logging 模組解密:揭露其不為人知的一面

Mar 08, 2024 am 08:19 AM
記錄處理器 日誌等級 日誌格式 應用程式日誌 日誌篩選器

Python logging 模块解密:揭示其不为人知的一面

1. 日誌等級:精準控制日誌資訊

#logging 模組定義了五種標準日誌等級:DEBUG、INFO、WARNING、ERROR 和 CRITICAL。這些等級決定了要記錄的訊息的重要性和嚴重性。預設情況下,logging 僅記錄 WARNING 及以上等級的訊息。您可以透過設定日誌器的等級來微調日誌的行為。例如:

import logging

# 设置 root 日志器的级别为 INFO
logging.basicConfig(level=logging.INFO)
登入後複製

2. 日誌格式:客製化日誌輸出

logging 模組提供了強大的日誌格式機制,可讓您自訂日誌訊息的外觀。格式字串指定了日誌訊息中包含的訊息,例如時間戳記、日誌等級、訊息文字和堆疊追蹤。預設格式為:

"[%(asctime)s] %(levelname)s %(module)s.%(funcName)s: %(message)s"
登入後複製

您可以使用以下程式碼自訂格式:

# 设置自定义日志格式
logging.basicConfig(fORMat="%(asctime)s %(levelname)-8s %(message)s")
登入後複製

3. 日誌處理器:擴充日誌輸出目的地

處理器負責將日誌訊息傳送到特定目標,例如檔案、控制台或遠端伺服器。 logging 模組提供了幾種內建處理器,如 StreamHandler 和 FileHandler。

建立自訂處理器也非常簡單。您需要建立一個類別並覆寫 handle 方法,該方法將日誌訊息寫入目標。例如,將日誌寫入自訂檔案:

class MyFileHandler(logging.FileHandler):
def __init__(self, filename):
super().__init__(filename)

# 将自定义处理器添加到 root 日志器
logging.getLogger().addHandler(MyFileHandler("my_log.txt"))
登入後複製

4. 日誌篩選器:過濾不必要的日誌訊息

#篩選器可讓您根據特定的條件過濾日誌訊息。您可以基於日誌等級、訊息文字或其他標準來建立篩選器。篩選器可以附加到處理器,以僅允許滿足條件的訊息通過。

例如,忽略 WARNING 等級的訊息的篩選器:

import logging

# 创建筛选器忽略 WARNING 级别的消息
filter = logging.Filter()
filter.filter = lambda record: record.levelno < logging.WARNING

# 将筛选器添加到 root 日志器的处理器
logging.getLogger().handlers[0].addFilter(filter)
登入後複製

5. 日誌上下文管理:優雅的日誌記錄

#logging.LoggerContextManager 上下文管理器提供了一種簡潔的方式來記錄區塊中的訊息。這對於臨時更改日誌等級或停用日誌記錄非常有用。

with logging.LoggerContextManager():
# 临时将日志级别设置为 DEBUG
logging.getLogger().setLevel(logging.DEBUG)

# 在块内记录 DEBUG 级的消息
logging.debug("调试信息")
登入後複製

6. 進階技巧:

  • 使用字典配置器:使用字典配置器提供更靈活的配置選項。
  • 建立自己的日誌等級:透過編寫自訂日誌等級來擴充內建等級。
  • 使用日誌記錄框架:例如 structlog 或 loguru,提供進階功能和可擴充性。
  • 非同步日誌記錄:透過使用非同步處理器來提高大型應用程式的效能。
  • 日誌記錄異常:使用 logging.exception() 或 logging.log_exception() 記錄異常堆疊追蹤。

結論:

python logging 模組是一個功能強大的工具,可用於有效地記錄應用程式活動。透過理解日誌等級、日誌格式、日誌處理器、日誌篩選器和進階技巧,您可以充分利用 logging 的功能,為您的應用程式建立靈活且有意義的日誌記錄解決方案。

以上是Python logging 模組解密:揭露其不為人知的一面的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

Python logging 模組知識點大揭秘:常見問題一網打盡 Python logging 模組知識點大揭秘:常見問題一網打盡 Mar 08, 2024 am 08:00 AM

Python logging 模組知識點大揭秘:常見問題一網打盡

揭開 Python logging 模組的神秘面紗:全方位指南 揭開 Python logging 模組的神秘面紗:全方位指南 Mar 07, 2024 pm 09:30 PM

揭開 Python logging 模組的神秘面紗:全方位指南

破解 Python logging 模組的謎團:掌握其複雜性 破解 Python logging 模組的謎團:掌握其複雜性 Mar 08, 2024 am 09:50 AM

破解 Python logging 模組的謎團:掌握其複雜性

深入了解log4j配置:客製化日誌格式和佈局形式 深入了解log4j配置:客製化日誌格式和佈局形式 Feb 18, 2024 pm 06:16 PM

深入了解log4j配置:客製化日誌格式和佈局形式

如何優化Java應用的日誌記錄:經驗與建議 如何優化Java應用的日誌記錄:經驗與建議 Nov 22, 2023 pm 02:41 PM

如何優化Java應用的日誌記錄:經驗與建議

log4j日誌等級的設定:如何精確記錄應用程式的運行狀態 log4j日誌等級的設定:如何精確記錄應用程式的運行狀態 Feb 18, 2024 pm 06:36 PM

log4j日誌等級的設定:如何精確記錄應用程式的運行狀態

提高程式運行效率的log4j日誌等級設定 提高程式運行效率的log4j日誌等級設定 Feb 19, 2024 pm 10:55 PM

提高程式運行效率的log4j日誌等級設定

使用log4j優化日誌等級設定:加快程式開發效率 使用log4j優化日誌等級設定:加快程式開發效率 Feb 23, 2024 pm 07:06 PM

使用log4j優化日誌等級設定:加快程式開發效率

See all articles