14.3Python程式除錯與測試(3):輸出日誌到檔案
阿新 • • 發佈:2019-01-30
@輸出日誌到檔案
- 建立一個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")