上篇文章讲述了Python中的相关异常的知识——Python实用教程系列——异常处理,包括异常的种类以及异常的处理方式,以及使用实例的方式说明了一些常用异常的处理。这次,我们来讲述一下Python中的另一个实用的教程,日志相关的知识。
很多的小伙伴在平时写代码的时候,基本上使用的都是使用print()函数来进行一些日志的打印,使用print()来进行一些代码的调试,在较小的程序中这样做是可以的。但是在实际的工程项目中,我们需要保存程序运行的日志,以排查程序在某一个时候崩溃的具体原因,以便及时定位Bug进行抢救,而在Python中,logging就可以十分灵活的帮助我们记录程序运行的过程的中的一些信息。
那么日志的作用是什么呢?
归纳起来日志的作用有三点:
- 进行程序(代码)的调试
- 程序运行过程中的问题定位和分析
- 收集程序运行的情况
接下来我们就来介绍Python中的标准库Logging的相关知识:
一、日志等级
Logging中的日志等级如下:
使用Python的小伙伴对WARNING和ERROR特别的熟悉,在一些模块版本过低的时候运行程序就会出现WARNING的警告。我们来看一些代码:
import logging
import logging
# 设置打印日志的级别,level级别以上的日志会打印出
# level=logging.DEBUG 、INFO 、WARNING、ERROR、CRITICAL
def log_testing():
# 此处进行Logging.basicConfig() 设置,后面设置无效
logging.basicConfig(level=logging.ERROR)
logging.debug('debug,用来打印一些调试信息,级别最低')
logging.info('info,用来打印一些正常的操作信息')
logging.warning('waring,用来用来打印警告信息')
logging.error('error,一般用来打印一些错误信息')
logging.critical('critical,用来打印一些致命的错误信息,等级最高')
log_testing()
当然了,上述的一些信息是输出到控制台的,下文我们将介绍日志输出到文件的方法。细心的小伙伴会发现
logging.basicConfig(level=http://logging.INFO)
这段代码主要是用来配置日志的输出的,代码会将level以上级别日志输出,比如设置
level=logging.ERROR.
稍微总结一下就是:程序在运行的过程中会记录下大于或等于这个日志级别的日志信息,如果不设置level的值则打印大于等于 WARNING 级别的日志。
二、Logging.basicConfig()
logging.basicConfig()的参数除了日志等级的这个参数可以设置以外,还可以设置其他的参数,比如:
上表提到日志的输出格式参数format,其控制着日志输出的一些格式:
我们来看看怎么使用:
import logging
# 设置打印日志的级别,level级别以上的日志会打印出
# level=logging.DEBUG 、INFO 、WARNING、ERROR、CRITICAL
def log_testing():
# 此处进行Logging.basicConfig() 设置,后面设置无效
logging.basicConfig(filename='log.txt',
format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s-%(funcName)s',
level=logging.ERROR)
logging.debug('debug,用来打印一些调试信息,级别最低')
logging.info('info,用来打印一些正常的操作信息')
logging.warning('waring,用来用来打印警告信息')
logging.error('error,一般用来打印一些错误信息')
logging.critical('critical,用来打印一