logging
日志作用
不管是在项目开发还是测试过程中,项目运行一旦出现问题日志信息就非常重要了。日志是定位问题的重要手段,就像侦探人员要根据现场留下的线索来推断案情。
日志级别
CRITICAL > ERROR > WARNING > INFO > DEBUG
DEBUG:调试信息,也是最详细的日志信息
INFO:证明事情按预期工作
WARNING:表面发生了一些意外,或者不久的将来会发生问题(如:磁盘满了)。软件还是在正常工作
ERROR:由于更严重的问题,软件已经不能执行一些功能了
CRITICAL:严重错误,表面软件已经不能继续运行了
日志格式
一般为时间+模块+行数+日志具体信息的内容格式
日志位置
一个项目中会有很多的日志采集点,而日志采集点必须结合业务属性来设置。比如在登录代码执行前可以插入“准备登录..”日志信息,如果登录完成之后,再设置登录的提示日志就会给人造成误解,无法判断到底是登录之前的问题还是登录之后的问题,因此日志采集点的位置很重要。
logging用法
basicConfig(**kwargs) 为日志记录系统做基本配置
部分参数
filename 指定日志文件名称
filemode 指定打开文件的模式,如果指定了filename(如果文件模式未指定,则默认为’a)
format 为处理程序使用指定的格式字符串。
level 将根记录器级别设置为指定级别。(仅会显示指定级别以及比它更严重的级别。如level=logging.ERROR,则仅会显示ERROR和CRITICAL级别的日志)
事例用法
1
2
3
4
5
6
7
8
9
10
11import logging
logging.basicConfig(level=logging.DEBUG,
filename='runlog.log',
format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
filemode='a')
logging.debug('debug info')
logging.info('info inof')
logging.warning('warning info')
logging.error('error info')
logging.critical('critical info')
实例:
将之前yaml的代码加上logging
1 | import yaml |