日志是调试程序时的一把利器,特别时对于服务端的程序来说。Python标准库中已经带了日志库 – logging。其功能和Java中著名的一些日志库(log4j, logback等)非常相似,无论是API还是总体架构。这篇文章就带大家看看如何使用Python中的logging。
基础使用
logging模块是Python自带的库的形式存在,使用起来非常方便,只需要在import对应的库就可以:
1 | import logging |
与其它语言(平台)的日志系统一样,logging中记录日志也分为不同的级别,从低到高分别是:
- DEBUG
- INFO
- WARNING
- ERROR
- CRITICAL
每个级别也有对应的方法,分别如下:
1 | import logging |
默认输出级别为WARNING, 所以如果你运行上面的程序,最终的输出其实只有最后的三行:
1 | WARNING:root:This is a warning message |
从这三行可以看出,logging默认的输出格式是: 级别:日志类:消息, 因为我们还没有设置生成任何的日志类(logger), 所以使用了系统默认的根日志类:root。
那如何改变logging的这些默认行为呢?那就要靠设置了。
基础设置
可以使用logging库中的basicConfig方法对logginer的行为进行设置。一些常用的参数包括:
- level, 设置日志级别
- filename: 指定日志文件
- filemode: 日志文件的打开模式,默认为追加模式(append)
- format: 指定输出格式
下面我们通过一个例子让大家体会一下:
1 | import logging |
运行这段程序,你会看到在当前目录中生成了一个名为”app.log”的文件,是一个简单的文本文件,打开这个文件, 内容如下:
1 | root - DEBUG - This is a debug message |
对吧前一节中的输出,你可以看到:
- 因为设置了日志级别为DEBUG, 所以所有的输出全部输出到文件中了。
- 输出的消息的格式符合我们在参数format中的设定
在format时,使用了三个内置的变量: name, levelname 和 message。 完整的变量列表可以参考官方文档