For the complete documentation index, see llms.txt. This page is also available as Markdown.
Page cover

logging 【日誌】

Logging


Logging library module 允許開發人員將日誌功能整合到他們的應用程序中,從而在運行時記錄事件、錯誤和其他重要信息。

Logging library module
Logging library module

print() 是沒有嚴重性概念的普通文本。而 Logging 具有 4 個級別的日誌訊息嚴重性或重要性,有助於從訊息忽略較低嚴重性的訊息。

Log 級別
說明

info(msg, *args, **kwargs)

監視和理解應用程序行為。(例如: 報告流程、事件、顯示狀態)

debug(msg, *args, **kwargs)

用於開發和測試階段。(例如: 記錄變數值、路徑、內部狀態)

warning(msg, *args, **kwargs)

表示問題已經發生或即將發生,但應用程序仍可以繼續運行。

error(msg, *args, **kwargs)

表示特定操作或任務失敗或遇到異常。錯誤通常會阻止應用程序按預期運行或產生不正確的結果。

critical(msg, *args, **kwargs)

表示對應用程序的功能有重大的嚴重錯誤。當此類事件發生時,應用程序可能處於不穩定或不可恢復的狀態。

執行結果

最佳的紀錄工具


任務
工具

顯示在 Terminal

print()

監控或故障調查

logging.info()logging.debug()

發出事件的警告

logging.warning()(注意該事件)、warnings.warn();(必須修正該事件)

報告事件的錯誤

引發 Exception。詳見: [[exception 【異常】]]

抑制錯誤而不引發異常 (例如: 伺服器中的 Threading)

logging.error(), logging.exception(), logging.critical()

basicConfig


快速設定多個屬性 (logger、FileHandler...)

常用的參數:

輸出級別控制
說明

filename

寫入日誌訊息的檔案名稱,否則輸出在 Terminal。

filemode

寫入模式,即 open()。如果指定 filename,則使用 "a"

format

需要寫入的日誌訊息。詳見: LogRecord attributes

datefmt

指定的日期/時間格式。與 time.strftime() 的格式相同。

style

日誌訊息的格式('%', '{', '$'),預設為%

level

設置根記錄器級別,不會記錄較小的級別的日誌。級別大小為: DEBUG < INFO < WARNING < ERROR < CRITICAL

encoding

編碼模式。常使用 encoding="UTF-8"

fileConfig

fileConfig() 允許使用 Configuration file 設定日誌記錄,而不是透過程式碼的方式定義。 支持的格式有:.ini、.yaml、.json。

透過使用 logging.config.fileConfig(),您可以將日誌記錄設定與您的程式碼分開,從而在不修改代碼本身的情況下更輕鬆地管理。此外,您可以為不同的環境或模塊使用不同的 Configuration file。

Logger


建立 Logger ,可以過濾 log 資訊。

設定 Logger。

Handler


如何處理 Logger 的資訊。

將 Logger 輸出到 File。

將 Logger 輸出到 Terminal。

將 Logger 輸出到 Web 。

設定 Handler 屬性。 其他屬性詳見:logging.Handler

Filter


Filter class 允許您自定義過濾器以根據特定條件有選擇地過濾掉日誌記錄。 它提供了一種微調日誌記錄系統中日誌記錄處理的方法。

Filter Filter class 是一個 base class, 它提供了一個 filter(record) 的方法,您需要在子 class 中覆蓋該方法。 filter() 方法將日誌記錄作為輸入,如果返回 True,則處理該日誌;則返回 True,如果返回 False,則跳過該日誌 。

範例


basicConfig

執行結果:

執行結果
執行結果

執行結果:

fileConfig


logger


執行結果:

執行結果:

Handler


執行結果:

Filter


執行結果:

Logger Decorator


執行結果:

執行結果:

參考資料


Python Doc

基礎 Logging 指南 — Python 3.11.3 說明文件

進階日誌教程 — Python 3.11.3 說明文件

日誌操作手冊 — Python 3.11.3 說明檔

logging.basicConfig — Python 3.11.3 說明文件

logging.getLogger — Python 3.11.3 說明文件

handlers — Python 3.11.3 文檔

config.fileConfig — Python 3.11.3 documentation

filter objects

Blog

Logging in Python - MachineLearningMastery.com

Logging in Python ——真正的 Python

Python 日誌記錄基礎:方法教程、示例及更多 - Sematext

在 Python 中登錄 - MachineLearningMastery.com

如何使用logging.Filter? | Python笔记

Python logging 模組之 logging.basicConfig 用法和參數詳解_Sir靜堂的博客-CSDN博客

Python - 日誌 (logging) 模組 | Titangene Blog

Last updated