logging.basicConfig()

JJJhr發表於2024-06-01

logging.basicConfig() 是 Python 標準庫 logging 模組中的一個函式,用於配置日誌記錄器(logger)的基本選項。這個函式允許你在不建立和配置多個 logger、handler 和 formatter 的情況下,快速地為你的應用程式設定日誌記錄。

以下是一些 basicConfig() 的常見引數:

  • filename: 指定日誌應寫入哪個檔案。如果指定了這個引數,日誌將被寫入檔案,而不是列印到控制檯。
  • filemode: 如果指定了 filename,則此引數定義檔案開啟模式(例如 'w' 表示寫入模式,'a' 表示追加模式)。預設為 'a'。
  • format: 定義日誌訊息的格式。預設為 '%(levelname)s:%(message)s'
  • datefmt: 定義日期/時間的格式。預設情況下,日期/時間不會包含在日誌訊息中。
  • level: 設定日誌的級別。例如,logging.DEBUG 會記錄所有級別的日誌(包括 DEBUG、INFO、WARNING、ERROR 和 CRITICAL),而 logging.WARNING 只記錄 WARNING 及以上級別的日誌。預設為 logging.WARNING
  • stream: 指定日誌應寫入哪個流物件(例如,一個檔案物件或 sys.stderr)。如果指定了這個引數,則不會使用 filename 引數。
  • handlers: 如果已經建立了處理程式(handler),則可以將它們作為此引數的列表傳遞。

下面是一個使用 logging.basicConfig() 的簡單示例:

import logging

logging.basicConfig(
    level=logging.DEBUG,  # 設定日誌級別
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',  # 設定日誌格式
    datefmt='%Y-%m-%d %H:%M:%S',  # 設定日期時間格式
    filename='app.log',  # 指定日誌檔名為 'app.log'
    filemode='w'  # 寫入模式,'w' 表示每次執行程式時覆蓋日誌檔案,'a' 表示追加到日誌檔案
)

logger = logging.getLogger(__name__)

logger.debug('這是一個除錯訊息')
logger.info('這是一個資訊訊息')
logger.warning('這是一個警告訊息')
logger.error('這是一個錯誤訊息')
logger.critical('這是一個嚴重訊息')

在這個示例中:

  • level=logging.DEBUG:設定日誌級別為 DEBUG,這意味著所有 DEBUG 級別或更高階別的訊息都會被記錄。
  • format='%(asctime)s - %(name)s - %(levelname)s - %(message)s':指定日誌訊息的格式。
  • datefmt='%Y-%m-%d %H:%M:%S':指定日誌訊息中的日期時間格式。
  • filename='app.log':指定日誌訊息應該寫入名為 app.log 的檔案。
  • filemode='w':指定每次執行程式時覆蓋日誌檔案。使用 'a' 可以將日誌追加到檔案中。

透過這種方式配置日誌記錄系統,可以輕鬆地控制日誌訊息在整個應用程式中的處理方式。