标签:for encoding email 详细 add 自定义 文件 warning tle
话不多说,开搞,基础是先使用自带loggin模块,level为warning以上,
进一步是自定义logger,level可自定义
#!/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(‘这是个致命且严重的错误......‘)
标签:for encoding email 详细 add 自定义 文件 warning tle
原文地址:https://www.cnblogs.com/mrchenyushen/p/9227231.html