python logger理解

import logging
#进行基本的日志配置

logging.basicConfig(filename = 'access.log',
format = '%(asctime)s - %(name)s - %(levelname)s -%(module)s %(message)s',
detefmt = '%Y - %m - %d %H:%M:%S %p'
level = 10,

日志级别遵循原则:自下而上进行匹配 #debug -》info ——》warning——》error-》critical
logging.debug("调试信息")#10
logging.info("正常信息")#20
logging.warning('不好啊着火啦') #30
logging.error('报错信息') #40
logging.critical('严重错误信息')#50

#问题:
1、没有指定日志级别
2、没有指定日志级别
3、只能往屏幕打印,没有写入文件

#新问题
1、不能指定字符串编码
2、只能往文件中打印

import logging
#logging 模块包含四种角色:logger,filter,formatter, handler
#1、logger:负责产生日志信息
logger1 = logging.getLogger('交易日志')
#logger2 = logging.getLogger('用户相关')

2、filter:负责筛选日志

3、formatter:控制日志输出格式

formatter1 = logging.Formatter(
fmt = '%(asctime):%(name)s:%(levelname)S:%(message)S',
datefmt = '%Y-%m-%d %X'
)

formatter2=logging.Formatter(
fmt = '%(asctime)s:%(message)s',
datefmt = '%Y-%m-%d %X'


#4、handler:负责日志输出的目标

h1 = logging.FileHandler(filename="al.log",encoding = 'utf-8')
h2 = logging.FileHandler(filename='a2.log',encoding = "utf-8")

sm = logging.StreamHandler()

5、绑定logger对象与handler对象
logger1.addHandler(h1)
logger1.addHandler(h2)
logger1.addHandler(sm)

6、绑定handler对象与formatter对象
h1、setFormatter(formatter)
h2、setFormatter(formatter)
sm.setFormatter(formatter2)

#7、设置日志级别:可以在两个关卡进行设置logger与handler
logger1.setLevel(10)
h1.setLevel(10)
h2.setLevel(10)
sm.setLevel(10)

logger1.info('Egon借给李杰100w')

猜你喜欢

转载自www.cnblogs.com/wuheng-123/p/9199514.html