python日志
简化和实用的处理日志请参考Python日志处理基础
Python非常容易实现日志功能,因为提供了logging模块方便开发者在代码事件中添加日志调用。事件是通过可选的包含变量的描述信息所组成。事件还有一个重要的特性是可以设置日志级别。
什么时候使用logging
logginglogging提供一系列简化的日志功能,提供级别有debug(), info(), warning(), error() 和 critical()。
简单案例
import logging
logging.warning('Watch out!') # will print a message to the console
logging.info('I told you so') # will not print anything上述没有指定输出到文件,则默认在终端输出。
日志记录到文件
import logging
logging.basicConfig(filename='example.log',level=logging.DEBUG)
logging.debug('This message should go to the log file')
logging.info('So should this')
logging.warning('And this, too')注意:在日志文件中会同时记录日志级别,所以默认显示如下:
如果希望通过命令行参数来设置日志级别,例如--log=INFO,则可以使用如下方法获取参数:
以下是一个案例:
这里调用了
basicConfig()来设置日志级别
从多个模块进行日志
如果程序包含多个模块,以下是组织logging的一个案例:
此时运行myapp.py将在日志文件myapp.log看到如下内容:
日志变量值
对于比阿亮数据,可以将变量作为参数传递:
日志格式
在日志中显示时间
则日志如下:
默认时间格式是ISO8601,即类似如上。如果需要控制日期格式,可以使用basicconfig:
则日志内容如下:
模块话日志
logging通过调用Logger累的方法来实现,所以创建logger对象:
配置Logging
运行以上案例输入:
以下哪里创建logger和handler以及formatter
以下是logging.conf配置文件:
则日志输出如下
简单的日志
简单记录日志
日志中增加时间戳
设置日志级别:
然后通过如下方法记录日志
多线程日志记录
以下案例是主线程(initlal)和其他线程同时记录日志的方法
日志文件中的空行
但是发现日志中每行记录后面都有一个空白行,所以记录日志中增加strip()去除多余回行
参考
Last updated
Was this helpful?