logging.md

logging 是 Python 內建模組之一,用於紀錄程式執行過程中的重要事件與除錯資訊。相比 print(),它提供等級分類、格式化、輸出至檔案等更強大的功能。


一、基本使用

import logging

logging.basicConfig(level=logging.INFO)
logging.info("這是一條資訊訊息")
logging.warning("這是一條警告")
logging.error("這是錯誤訊息")

二、訊息等級

等級
說明

DEBUG

偵錯用,最低層級

INFO

一般運行資訊

WARNING

警告,但程式仍可執行

ERROR

錯誤,程式可能異常中止

CRITICAL

嚴重錯誤,導致系統中止


三、自訂輸出格式

logging.basicConfig(
    level=logging.DEBUG,
    format='%(asctime)s - %(levelname)s - %(message)s'
)

輸出範例:

2025-06-04 22:10:23,456 - INFO - 執行完成

四、輸出到檔案

logging.basicConfig(
    filename='app.log',
    filemode='w',  # 'a' 為 append 模式
    level=logging.INFO,
    format='%(levelname)s:%(message)s'
)

五、與例外搭配使用

try:
    1 / 0
except ZeroDivisionError as e:
    logging.exception("發生例外錯誤")

此時會自動包含 traceback 訊息。


六、進階用法:多 logger、handler 架構

logger = logging.getLogger("myapp")
file_handler = logging.FileHandler("myapp.log")
stream_handler = logging.StreamHandler()

formatter = logging.Formatter('%(asctime)s | %(levelname)s | %(message)s')
file_handler.setFormatter(formatter)

logger.addHandler(file_handler)
logger.addHandler(stream_handler)
logger.setLevel(logging.INFO)

logging 是撰寫大型應用程式、機器學習 pipeline 或 REST API 等程式的除錯與維護關鍵工具。建議在正式應用中以 log 取代 print(),便於除錯與追蹤。

Last updated