python log日志常用用法总结
非常感谢下面这篇博客的博主,翻译的很好,讲的非常全,如果大家想要系统的学一下,可以选择下面的文章。本文只是总结在实际应用中的常用方法和函数介绍。
日志输出
日志等级划分
- DEBUG 等级最低的,最详细的日志信息,典型应用场景是 问题诊断
- INFO 信息详细程度仅次于DEBUG,通常只记录关键节点信息,用于确认一切都是按照我们预期的那样进行工作
- WARNING 当某些不期望的事情发生时记录的信息(如,磁盘可用空间较低),但是此时应用程序还是正常运行的
- ERROR 由于一个更严重的问题导致某些功能不能正常运行时记录的信息
- CRITICAL 当发生严重错误,导致应用程序不能继续运行时记录的信息
总之,从上到下,日志等级越来越高
import logging
logging.debug('this is a debug')
logging.info('this is a info')
logging.warning('this is a warning')
logging.error('this is a error')
logging.critical('this is a critical')
out:
WARNING:root:this is a warning
ERROR:root:this is a error
CRITICAL:root:this is a critical
这里我们可以看到,我们上面写了五个不同级别的输出,但是在控制台的输出只有三个。其原因是logging模块默认的级别是warning
,所以只能输出三个日志信息。
那我想都输出出来怎么办?来配置basicConfig()方法
logging.basicConfig()
从名字中,我们就能够看出,这是一个配置函数,首先介绍一下他的几个参数
- filename 指定日志输出目标文件的文件名,指定该设置项后日志信心就不会被输出到控制台了
- filemod 指定日志文件的打开方式,默认为’a’ .注: 模式a为在文件末尾追加。模式w是重新写入。
- format 指定日志格式字符串,下面会给出相应表格
- datefmt 指定日期/时间格式
- level 指定日志器的日志级别
- stream 指定日志输出目标stream,如sys.stdout、sys.stderr以及网络stream,和filename冲突,二者只能设置一个
logging模块format格式字符串字段
这里我直接截取文章开头那篇博客的图
配置后的日志输出
- 输出到文件中