基础实例logging模块是python中内置的标准模块,通常用于输出脚本运行日志,同时还可以设置输出日志的等级、日志保存路径、日志文件回滚等
首先通过一个简单的实例,来了解logging模块的基础用法:
首先引入logging模块然后利用basicConfig配置level信息format信息接着声明一个Logger对象,是日志输出的主类最后使用上述声明的Logger对象,调用info()方法就可以输出INFO级别的日志信息,调用deBUG方法可以输出DEBUG级别的日志信息# 导入logging包import logging# 设置配置信息logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')# 定义日志名称getLoggerlogger = logging.getLogger("log_demo")# info deBUG warninglogger.info('info')logger.deBUG('deBUG')logger.warning('warning')
运行后,打印如下日志信息:
2021-02-22 22:55:21,683 - log_demo - INFO - info2021-02-22 22:55:21,695 - log_demo - WARNING - warning
从打印结果,我们很容易就会发现logger.deBUG的日志信息,并没有打印出来,这到底是为什么呢? 这就需要关注到上面提到的level信息了
日志级别logging模块中level信息,有以下五类:
CRITICAL:致命错误,软件可能无法运行ERROR:严重错误,软件可能无法运行某些功能WARNING:警告信息,软件还能按预期运行INFO:确认一切是否按预期运行DEBUG:详细的信息,常用于诊断问题NOTSET:不设置level接下来,再通过一个实例感受一下:
# 导入logging包import logging# 设置配置信息logging.basicConfig(level=logging.DEBUG, filename='output.log', datefmt='%Y/%m/%d %H:%M:%s', format='%(asctime)s - %(name)s - %(levelname)s -%(lineno)s -%(module)s - %(message)s')# 定义日志名称getLoggerlogger = logging.getLogger("log_demo")# info deBUG warninglogger.info('info')logger.deBUG('deBUG')logger.warning('warning')
该实例与第一个实例相比,有三点变化:
通过filename指定了输出日志文件output.log用于记录生成的日志信息通过datefmt指定了日期的输出格式通过%(lineno)s和%(module)s, 在日志记录中,打印日志的当前行号和模块名称生成的日志文件output.log内容如下:
2021/02/23 22:10:49 - log_demo - INFO -15 -log_example - info2021/02/23 22:10:49 - log_demo - DEBUG -16 -log_example - deBUG2021/02/23 22:10:49 - log_demo - WARNING -17 -log_example - warning
从日志内容,我们能够看到,当level信息为DEBUG时,三条日志均打印出来了,这是因为日志级别是有等级高低排序的:
CRITICAL > ERROR > WARNING > INFO > DEBUG
可以这样理解,logging模块在打印模块时,不会打印比当前level等级低的内容,例如我们设置了输出日志 level 为 INFO,只会输出级别大于等于 INFO 的日志,如 WARNING、ERROR 等,而DEBUG 和 NOSET 级别的不会输出。
总结以上是内存溢出为你收集整理的python之logging日志模块基础用法总结全部内容,希望文章能够帮你解决python之logging日志模块基础用法总结所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)