日志和正则表达式
import logging 这是记录系统一些信息的模块
记录日志的输出是有两种方式的
1 一种是在控制台中打印出日志
2 一种是在文件中打印出记录的日志
我们把这两种方式称之为句柄
在系统中的打印者是可以自己定义的,如果不 自己定义,就会使用系统自带的打印者.
不过我们一般都是自己定义一个打印者
在logging中打印的格式是随着自己想要的输出格式来定义格式化
logging 中的输出分为五种,他们本身是没有什么优先级的,都是通过我自己定义输出的
logging.debug("debug") logging.info("info") logging.warning("warning") logging.error("error") logging.critical("critical")
在打印者 和 句柄 和 输出的格式如下图中所画
# 操作日志的模块 # 日志:日常的流水,将程序运行过程中的状态或数据进行记录,一般都是记录到日志文件中 # 在正常的项目中,项目运行的一些打印信息,采用looging打印到文件中,这个过程就称之为 记录日志 import logging # logging为默认打印者,名字叫root,配置采用以下方式 h1 = logging.StreamHandler() h2 = logging.FileHandler('d.log') logging.basicConfig( # filename='my.log', # filemode='w', # stream=sys.stderr, # 往控制台打印采用具体的输出流 format='%(asctime)s [%(levelname)s]- %(name)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S', level=logging.DEBUG, # 10, 代表DEBUG及DEBUG级别以上都能输出 handlers=[h1, h2] ) logging.debug("debug") logging.info("info") logging.warning("warning") logging.error("error") logging.critical("critical")
import logging # 1.创建logger log1 = logging.getLogger('Owen') log2 = logging.getLogger('Zero') r_log = logging # 2.logger设置级别 log1.setLevel(logging.DEBUG) # 3.设置句柄 h1 = logging.StreamHandler() # 4.设置句柄级别: # 1)系统句柄默认级别warning, # 2)自定义的句柄级别默认同logger,也可以在logger基础上在加以限制 h1.setLevel(logging.DEBUG) # 5.logger添加句柄 log1.addHandler(h1) # log1可以打印DEBUG以上的信息,但往不同位置打印,采用不同句柄的二次级别限制 h2 = logging.FileHandler('c.log') h2.setLevel(logging.WARNING) log1.addHandler(h2) log1.debug('debug') log1.info('info') log1.warning('warning') log1.error('error') log1.critical('critical') log2.critical('00000') r_log.critical('00000')
# 1.配置 LOGGING_DIC = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'o_fmt1': { 'format': '%(name)s:%(asctime)s - %(message)s' }, 'o_fmt2': { 'format': '%(name)s:%(asctime)s [%(levelname)s] - %(message)s' } }, 'filters': {}, 'handlers': { 'o_cmd': { 'level': 'DEBUG', 'class': 'logging.StreamHandler', 'formatter': 'o_fmt1' }, 'o_file': { 'level': 'WARNING', 'class': 'logging.handlers.RotatingFileHandler', 'formatter': 'o_fmt2', 'filename': r'F:\python8期\课堂内容\day20\代码\part4\logging.log', # 日志文件 'maxBytes': 1024*1024*5, # 日志大小 5M 'backupCount': 5, #日志文件最大个数 'encoding': 'utf-8', # 日志文件的编码 } }, 'loggers': { 'o_owen': { 'level': 'DEBUG', 'handlers': ['o_cmd', 'o_file'] }, 'o_zero': { 'level': 'DEBUG', 'handlers': ['o_file'] } } } # 2.加载配置 import logging.config logging.config.dictConfig(LOGGING_DIC) # 3.使用 log = logging.getLogger('o_owen') log.warning('123')
# 正则:是有语法的字符串,用来匹配目标字符串的 # 将目标字符串中的所以数字找出 data = '123abc呵呵' res = re.findall(r'\d', data) # \d就代表数字 print(res) # ['1', '2', '3']