Python3中的logging模塊提供了較爲靈活的事件日誌系統html
日誌級別python
DEBUG < INFO < WARING(Python默認) < ERROR < FATAL(CRITICAL)ide
logging模塊經常使用的類主要有如下幾個函數
logging.Loggerspa
主要提供應用程序代碼直接使用的接口,通常不會直接實例化,而是經過logging.getLogger(name)獲得debug
logging.Handler3d
日誌處理對象的基類,不該實例化,被實例化的應該是其子類,如logging.StreamHandler,它負責發送日誌記錄到正確的目標日誌
logging.Formattercode
它決定了以怎樣的格式來進行打印日誌記錄,經常使用的日誌格式以下:orm
%(name)s
Logger對象的名字
%(levelname)s
日誌級別的英文表示
%(filename)s
調用日誌輸出函數的模塊名
%(lineno)s
調用日誌輸出函數的語句所在的代碼行
%(asctime)s
字符串形式的當前時間
%(message)s
用戶輸出的消息
示例代碼
import logging # 1.初始化日誌默認配置 logging.basicConfig(filename='./my.log', # 日誌輸出文件 level=logging.DEBUG, # 日誌寫入級別 datefmt='%Y-%m-%d %H:%M:%S', # 時間格式 format='%(asctime)s %(levelname)s Line:%(lineno)s==>%(message)s') # 日誌寫入格式 # 2.打印不一樣級別的日誌記錄 logging.debug("debug級別的日誌") logging.info("info級別的日誌") logging.warning("warning級別的日誌") logging.error("error級別的日誌") logging.critical("fatal級別的日誌")
import logging # Formatter對象 用於決定日誌打印的格式 fmt = logging.Formatter("%(asctime)s %(levelname)s Line:%(lineno)s==>%(message)s") fmt.datefmt = "%Y-%m-%d %H:%M:%S" # 能夠自定義時間的格式 # Handler對象 將(logger建立的)日誌記錄發送到合適的目的輸出 ch = logging.StreamHandler() # 標準輸出流處理對象 ch.setFormatter(fmt) ch.setLevel(logging.WARNING) fh = logging.FileHandler("./jet.log") # 文件處理對象 fh.setFormatter(fmt) fh.setLevel(logging.FATAL) # Logger對象 對外暴露的接口 logger = logging.getLogger("Jet") logger.addHandler(ch) logger.addHandler(fh) logger.setLevel(logging.INFO) # 日誌級別總控制,以它爲最低級別 # 日誌輸出 logger.debug("debug級別的日誌") logger.info("info級別的日誌") logger.warning("warning級別的日誌") logger.error("error級別的日誌") logger.critical("fatal級別的日誌")
參考資料
http://python.usyiyi.cn/translate/python_352/library/logging.html