1. 程式人生 > 其它 >python logging 模組

python logging 模組

logging模組是Python內建的標準模組,主要用於輸出執行日誌,可以設定輸出日誌的等級、日誌儲存路徑、日誌檔案回滾等;

1. 控制檯基本使用:

import logging
logging.basicConfig(level
= logging.INFO,format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s') logger = logging.getLogger(__name__) logger.info("Start print log") logger.debug("Do something") logger.warning(
"Something maybe fail.") logger.info("Finish")

2. 將日誌輸出到檔案

import logging


# logger 繫結 handler(可以多個), handler 繫結formatter logger
= logging.getLogger(__name__) #將當前檔名作為日誌名生成logger 物件 logger.setLevel(level = logging.INFO) # 為logger設定預設等級,低於此等級的資訊均被忽略 Debug<Info<Warning<ERROR<critical<fatal handler
= logging.FileHandler("log.txt") #生成 fileHandler(用的最多的就是 streamhandler 和filehandler) handler.setLevel(logging.INFO) #為handler 設定等級 formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') #設定日誌格式 handler.setFormatter(formatter) handler 繫結格式 console
= logging.StreamHandler() console.setLevel(logging.INFO) logger.addHandler(handler) logger.addHandler(console) logger.info("Start print log") logger.debug("Do something") logger.warning("Something maybe fail.") logger.info("Finish")

3 旋轉型日誌

  生成給定數量日誌,不帶數字的是最新生成,可以設定每個日誌的大小

import logging
from logging.handlers import RotatingFileHandler
logger
= logging.getLogger(__name__) logger.setLevel(level = logging.INFO)
#定義一個RotatingFileHandler,最多備份3個日誌檔案,每個日誌檔案最大1K rHandler = RotatingFileHandler("log.txt",maxBytes = 1*1024,backupCount = 3) rHandler.setLevel(logging.INFO) formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') rHandler.setFormatter(formatter) console = logging.StreamHandler() console.setLevel(logging.INFO) console.setFormatter(formatter) logger.addHandler(rHandler) logger.addHandler(console) logger.info("Start print log") logger.debug("Do something") logger.warning("Something maybe fail.") logger.info("Finish")