話很少說,開搞,基礎是先使用自帶loggin模塊,level爲warning以上,python
進一步是自定義logger,level可自定義spa
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/6/25 21:09 # @Author : Mr.chen # @Site : # @File : class_06_23_log_001.py # @Software: PyCharm # @Email : 794281961@qq.com import logging, os # 日誌分爲幾個級別? 5個 # debug(調試信息) info(詳細信息) warning(警告信息) error(錯誤信息) critical(致命的嚴重的錯誤) # :1 日誌收集器 logger --->日誌收集器(默認只收集warning級別以上的信息) # :2 輸出渠道 console file # :3 建立本身的日誌收集器,Logger,專門收集debug與info信息 ''' logging.debug('loging_model_debug信息') logging.info('loging_model_info信息') logging.warning('loging_model_warning信息') logging.error('loging_model_error信息') logging.critical('loging_model_critical信息') # ps:由於Logging默認輸出的level爲warning以上的信息才能輸出,因此這樣的需求是不知足咱們的,So,咱們要自定義log ''' class MyLog: # log流程:先收集日誌--->後輸出渠道 # 第一:規範日誌格式 def my_log(self, name, level, log_path=(os.path.dirname(__file__)) + ('\\test_log.txt')): formatter = logging.Formatter('【%(asctime)s】-【%(levelname)s】-【%(filename)s-%(name)s】-【日誌信息】:%(message)s') # 第二:建立本身的日誌收集器,Logger,專門收集debug與info信息 # name, level=NOTSET,若是level不設置的話,默認爲warning級別,命名的時候要大寫 logger = logging.Logger(name, level) # logger.debug('這是個調試信息......') # logger.info('這是個詳細信息') # logger.warning('這是個警告信息......') # logger.error('這是個錯誤信息...........') # logger.critical('這是個致命且嚴重的錯誤......') # # 第三:建立輸出渠道,warning級別以上的信息,輸出到控制檯 ch = logging.StreamHandler() # 輸出到控制檯 ch.setLevel(level) logger.addHandler(ch) ch.setFormatter(formatter) # 第三:也能夠,Logger,輸入到文件中 fh = logging.FileHandler(log_path, encoding='UTF-8') # 輸出到文件裏 fh.setLevel(level) fh.setFormatter(formatter) logger.addHandler(fh) logger.addHandler(ch) ch.setFormatter(formatter) return logger if __name__ == '__main__': logger = MyLog().my_log('mr.chen', 'DEBUG') logger.debug('這是個調試信息......') logger.info('這是個詳細信息') logger.warning('這是個警告信息......') logger.error('這是個錯誤信息...........') logger.critical('這是個致命且嚴重的錯誤......')