日志是程序不可或缺的一部分。它可以记录程序的运行情况,帮助我们更便捷地发现问题,而python中的logging日志模块给我们提供了这个机会。
logging给我们提供了五种函数用来输出日志:debug()、info()、waring()、error()和critical()
这五种函数的使用场景:
DEBUG:详细信息,典型地调试问题时会感兴趣。
INFO: 证明事情按预期工作。
WARNING: 表明发生了一些意外,或者不久的将来会发生问题(如‘磁盘满了’)。软件还是在正常工作。
ERROR:由于更严重的问题,软件已不能执行一些功能了。
CRITICAL:严重错误,表明软件已不能继续运行了。
这篇文章只介绍logging的简单使用,下一篇文章将会介绍设置复杂的配置,以便满足更多的需求
简单配置
简单的配置适用于小的脚本文件中或者是小的项目中
首先我们利用了logging.basicConfig()函数设置logging。下面介绍其中的属性
level,设置需要捕获的日志级别,如果日志消息的级别高于设定的值则捕获该日志消息把它打印到屏幕上或者存储到文件中,如果低于该级别则不捕获
format,用于设置日志消息的格式
Attribute Format Description
asctime %(asctime)s 将日志的时间构造成可读的形式,默认情况下是‘2016-02-08 12:00:00,123’精确到毫秒
filename %(filename)s 包含path的文件名
funcName %(funcName)s 由哪个function发出的log
levelname %(levelname)s 日志的最终等级(被filter修改后的)
message %(message)s 日志信息
lineno %(lineno)d 当前日志的行号
pathname %(pathname)s 完整路径
process %(process)s 当前进程
thread %(thread)s 当前线程
filemode:设置记录日志的方式,'w'将会重新改写整个日志文件,'a'将会在原来的文件中追加内容
3. datefmt:可以设置日志消息中时间的显示格式
4. filename:设置将日志记录到那个文件当中,如果不设置这个值,日志将会打印到屏幕上
5. filemode:设置将日志写入文件的方式,'a'是追加到文件中,'w'是重写文件
注意:上面配置的属性都是可选的,他们都是有默认值的
分析代码
在代码中我们将日志以追加的方式写到同目录中的my.log中,并设置了消息的格式和处理消息的级别是INFO,所以只有
INFO和比INFO级别更高的日志消息我们才会记录捕获
我们设置了两个函数test1、test2,在test1中
test1
我们可以在日志消息中引用变量,我们看看运行的效果
my.log
可以看到只在my.log文件中写入了info和warning消息,而程序中的debug消息并没有写入,这是因为debug的级别小于info。
免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
好啦,今天的分享到这里就结束了,如果需要更多的技术性文章,可以直接访问马哥教育官网欧!