logging 模塊的基本使用程序員
import logging # Python內置的日誌模塊 # 1. 定義日誌收集器,使用.getLogger方法,收集器的名字case case_logger = logging.getLogger("case") # 會建立一個Logger對象 # 2. 指定日誌收集器的日誌等級,使用logging對象中.setLevel方法 # NOTSET(0), DEBUG(10), INFO(20)--, WARNING(30), ERROR(40), CRITICAL(50) # 方法一 setLevel(賽特。萊歐) # case_logger.setLevel(logging.DEBUG) # 只能收集當前等級和當前等級以上級別的日誌 # 方法二 setLevel(賽特。萊歐) case_logger.setLevel("DEBUG") # 3. 定義日誌輸出渠道 # 輸出到控制檯,使用logging(老根)當中的.StreamHandler(絲錐木汗都) console_handle = logging.StreamHandler() # Handler對象 # 輸出到文件,使用logging(老根)當中的.FileHandler(發偶。憨豆)方法,(指定文件名, 默認a以追加的方式,) file_handle = logging.FileHandler("cases.log", encoding="utf-8") # 4. 指定日誌輸出渠道的日誌等級,使用對象.setLevel(賽特。萊歐)方法 console_handle.setLevel(logging.ERROR) file_handle.setLevel(logging.INFO) # 5. 定義日誌顯示的格式,logging(老根)當中的 Formatter(佛梅特) 函數 # 簡單點的格式 simple_formatter = logging.Formatter('%(asctime)s - [%(levelname)s] - [msg]: %(message)s') # 詳細的格式 verbose_formatter = logging.Formatter('%(asctime)s - [%(levelname)s] - [msg]: %(message)s - %(name)s - %(lineno)d') # 控制檯顯示簡潔的日誌,setFormatter(賽特否梅特)函數 console_handle.setFormatter(simple_formatter) # 日誌文件中顯示詳細日誌 file_handle.setFormatter(verbose_formatter) # 6. 對接, 將日誌收集器與輸出渠道對接,收集器中addHandler(按得,憨豆)函數 case_logger.addHandler(console_handle) case_logger.addHandler(file_handle)
日誌等級函數
日誌顯示的格式spa
logging 模塊的封裝debug
# 封裝處理日誌的類 import logging from danyuan.handle_config import do_config # 從配置文件中獲取 class HandleLog: """ 封裝處理日誌的類 """ def __init__(self): # 1. 定義日誌收集器 self.case_logger = logging.getLogger(do_config.get_value("log", "logger_name")) # 2. 指定日誌收集器的日誌等級 self.case_logger.setLevel(do_config.get_value("log", "logger_level")) # 3. 定義日誌輸出渠道 console_handle = logging.StreamHandler() # 定義日誌輸出到控制檯 file_handle = logging.FileHandler(do_config.get_value("log", "log_filename"), encoding="utf-8") # 定義日誌輸出到文件 # 4. 指定日誌輸出渠道的日誌等級 console_handle.setLevel(do_config.get_value("log", "console_level")) file_handle.setLevel(do_config.get_value("log", "file_level")) # 5. 定義日誌顯示的格式 simple_formatter = logging.Formatter(do_config.get_value("log", "simple_formatter")) # 簡單點的格式 verbose_formatter = logging.Formatter(do_config.get_value("log", "verbose_formatter")) # 詳細的格式 console_handle.setFormatter(simple_formatter) # 控制檯顯示簡潔的日誌 file_handle.setFormatter(verbose_formatter) # 日誌文件中顯示詳細日誌 # 6. 對接, 將日誌收集器與輸出渠道對接 self.case_logger.addHandler(console_handle) self.case_logger.addHandler(file_handle) def get_logger(self): """ 獲取logger日誌對象 :return: """ return self.case_logger # do_log = HandleLog().get_logger() # 實例化對象 if __name__ == '__main__': do_log = HandleLog() case_logger = do_log.get_logger() case_logger.debug("這是一個debug級別的日誌") # 手動記錄日誌 case_logger.info("這是一個info級別的日誌") case_logger.warning("這是一個warning級別的日誌") case_logger.error("這是一個error級別的日誌") case_logger.critical("這是一個critical級別的日誌")
*******請你們尊重原創,如要轉載,請註明出處:轉載自:https://www.cnblogs.com/shouhu/ 謝謝!!******* 調試