python学习Day20 logging 配置、re正则

loggin模块
日志:记录日常的流水 => 将程序运行过程中的状态或数据进行记录,记录到日志文件中
import logging
logging配置:格式化输出 1)输出的方式 2)输出的格式 3)输出的位置
#基础配置如下:
logging.basicConfig(
filename='my_log.log',
filemode='w', #默认a追加
#stream = sys.stderr,  往控制台打印采用具体的输出流 ,只能往一个地方,要么文件,要么控台
format='%(asctime)s- %(name)s -%(levelname)s - %(module)s-%(message)s',
datefmt='%Y-%m-%d %H:%M:%S %p',
level=logging.INFO,) #  10,代表DEBUG及DEBUG级别以上都能输出

五个日志级别,级别本身没有代表信息重要性的级别,人为约定信息的级别。
可以设置级别,打印满足对应级别的信息
logging.info('info') #10
logging.debug('debug') #20
logging.warning('warning') #30
logging.error('error') #40
logging.critical('critical') #50

#不能将日志信息按不同的配置【日志格式,日志种类、等】写到不同的文件
#四大成员:
#1. logger对象
#2. filter 一种过滤规则
#3. handler控制输出的位置句柄,如往文件1、文件2..控制台
#4.formater输出的格式
'''
# 1.logger对象
logger1 = logging.getLogger('O_WEN') #不写默认是root


# 2.filter对象:过滤日志
'''
# 3.handler对象
fh1 = logging.FileHandler('a1.log', encoding='utf-8',) # 默认mode='a',
fh2 = logging.FileHandler('a2.log',encoding='utf-8')
ch = logging.StreamHandler()  #打印到控制台

# 4.formater 控制输出格式
formater1 = logging.Formatter(
fmt='%(asctime)s - %(name)s - %(levelname)s - %(module)s - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S %p',)

formater2 = logging.Formatter(
fmt='%(asctime)s - %(levelname)s - %(message)s',
datefmt='%Y-%m-%d %H: %S %p',
)

# 5.绑定logger对象与handler对象
logger1.addHandler(fh1)
logger1.addHandler(fh2)
logger1.addHandler(ch)

# 6.绑定hgandler与formater
fh1.setFormatter(formater1)
fh2.setFormatter(formater1)
ch.setFormatter(formater2)

# 7.设置logger级别,有logger对象与handle对象两层关卡,必须都放行,最终才会放行执行
# 通常二者的级别相同
logger1.setLevel(10)
fh1.setLevel(10)
fh1.setLevel(10)
ch.setLevel(10)

#8使用logger对象产生日志
logger1.info('egon给owen转帐1000个亿美元')

'''

自定义配置loggin 

猜你喜欢

转载自www.cnblogs.com/qingqinxu/p/10841024.html