Python——logging模块使用
1、日志级别划分
在Python中,log的级别被划分为5类,按照级别从高到低依次分类为CRITICAL,ERROR,WARNING,INFO,DEBUG,NOTEST五个类别。在python反馈日志信息的时候,默认是WARNING级别的,也就是说程序默认反馈WARNING级别以上的信息。除非我们手动的设置。基本效果如图所示:
2、基本使用一:输出到控制台
下面,我们通过logging.basicConfig() 来设置相关的输出格式和日志级别:
logging.basicConfig() 一共包含两个参数,第一个参数是format输出格式,第二个参数是级别设置。其中format的格式化参数包括:
%(levelno)s:打印日志级别的数值
%(levelname)s:打印日志级别的名称
%(pathname)s:打印当前执行程序的路径,其实就是sys.argv[0]
%(filename)s:打印当前执行程序名
%(funcName)s:打印日志的当前函数
%(lineno)d:打印日志的当前行号
%(asctime)s:打印日志的时间
%(thread)d:打印线程ID
%(threadName)s:打印线程名称
%(process)d:打印进程ID
%(message)s:打印日志信息
3、基本使用二:输出到文件中
通常情况下,我们需要将日志输入到文件之中,只需要修改logging.basicConfig() 的参数即可。
注意:将函数的输出的结果值写入到log文件中的时候,在格式化参数中,message传入的需要是一个字符串,所有我们在下面的传入信息的过程中,可以采用格式化字符串的方式进行传入。
4 标准使用:组件
4.1 使用组件输入到控制台和文件中
上述的使用方式是两种基本的使用方式,在实际的时候中,组件的使用方式更加的常见,logging模块的基本组件包括:
- Logger :接口组件
- Handler : 基本处理组件
- Filter : 输出内容控制组件(过滤输出内容)
- Formatter 输出格式组件
4.2 日志数量较多的时候
当我们需要打印的日志信息过多的时候,单独的采用一个日志文件进行保存,会显得文件内容比较复杂,这里我们采用分割日志文件的方式,将内容写入到多个日志文件中,便于管理。
logging模块提供了两种方式来自动的切分日志文件:
- logging.handlers.RotatingFileHandler -> 按照大小自动分割文件,一旦指定大小就重新生成文件。
- logging.handlers.TimedRotatingFileHandler ->按照时间自动分割文件。
具体的使用方式和上面类似。相关参数可以参考下面的文章。