Python中logging的使用
简单介绍
我们先来看一下函数式简单配置
默认情况下Python的logging模块将日志打印到了标准输出中,且只显示了大于等于WARNING级别的日志,这说明默认的日志级别设置为WARNING
(日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG),
默认的日志格式为日志级别:Logger名称:用户输出消息。
我们自己用函数写的这个可以正常使用但是不够灵活,我们看看这个灵活的
标准的日志格式
下面我将在这里介绍一个简单的日志书写格式
首先要导入模块 通过logging.getLogger 建立对象,括号内为用户名默认为Root。因为导入方式比较长,为了方便之后的使用所以赋值给了logger。
然后通过logging.FileHandler 创建一个log文件,mode默认为追加模式,通过logging.StreamHandler创建终端输出模式、
通过logging.Formatter来定义输出的格式。和字符串的格式不同,logging中有以下格式。
%(name)s Logger的名字
%(levelno)s 数字形式的日志级别
%(levelname)s 文本形式的日志级别
%(pathname)s 调用日志输出函数的模块的完整路径名,可能没有
%(filename)s 调用日志输出函数的模块的文件名
%(module)s 调用日志输出函数的模块名
%(funcName)s 调用日志输出函数的函数名
%(lineno)d 调用日志输出函数的语句所在的代码行
%(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示
%(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数
%(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
%(thread)d 线程ID。可能没有
%(threadName)s 线程名。可能没有
%(process)d 进程ID。可能没有
%(message)s用户输出的消息
通过以下两种方式来设置输出等级,我们上面也说过logging默认的输出等级为warning及30.我们下面列一个各个级别对应的数字。
通过上图可以知道每个级别对应的数字。
随后我们用之前确定好的输出模式用过setFormatter来绑定到文件和屏幕上。
然后通过addHandler将设置存储日志信息的文件绑定到logger日志上,且addHandler每执行一次会多添加一次输出,所以日志最好单次执行,多次执行需要谨慎执行addHandler。
最后即使通过不同的级别来记录日志了。