1. 程式人生 > >14.3Python程式除錯與測試(3):輸出日誌到檔案

14.3Python程式除錯與測試(3):輸出日誌到檔案

@輸出日誌到檔案

  • 建立一個logging.FileHandler物件
  • 配置其日誌級別和格式等資訊
  • 新增檔案處理器到logger
import logging

# 獲取logger物件,設定日誌級別
logger = logging.getLogger(__name__)
logger.setLevel(level=logging.INFO)

# 獲取檔案處理器,並設定級別
handler = logging.FileHandler("./logs/log.txt")
# handler = logging.FileHandler("./logs/log.csv")
handler.setLevel(logging.INFO)

# 獲取並設定檔案處理器的日誌格式
formatter = logging.Formatter('%(asctime)s,%(name)s,%(levelname)s,%(message)s') handler.setFormatter(formatter) # 設定日誌處理器 logger.addHandler(handler) # 列印日誌 logger.info("Start print log") logger.debug("Do something") logger.warning("Something maybe fail.") logger.info("Finish")

@同時輸出日誌到控制檯和檔案

  • 分別建立一個FileHander和一個StreamHandler物件用於處理檔案輸出和控制檯輸出
  • 分別配置兩個處理器的輸出級別和格式
  • 將這兩個處理器都新增到logger物件
import logging

# 獲取logger物件,取名mylog
logger = logging.getLogger("mylog")

# 輸出INFO及以上級別的資訊
logger.setLevel(level=logging.INFO)

# 獲取檔案處理器並設定日誌級別
handler = logging.FileHandler("./logs/log2.txt")
handler.setLevel(logging.INFO)

# 生成並設定檔案處理器的日誌格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'
) handler.setFormatter(formatter) # 獲取流處理器並設定日誌級別 console = logging.StreamHandler() console.setLevel(logging.INFO) # 為logger物件同時新增檔案處理器和流處理器 logger.addHandler(handler) logger.addHandler(console) # 列印日誌 logger.info("Start print log") logger.debug("Do something") logger.warning("Something maybe fail.") logger.info("Finish")