打印日志是很多程序的重要需求,良好的日志输出可以帮我们更方便的检测程序运行状态。Python标准库提供了logging模块,让我们也可以方便的在Python中打印日志。
日志介绍
完整的使用方法可以参考标准库文档。这里做一下简单介绍。
日志级别
日志级别有如下几种。当获取根Logger的时候,默认级别为NOTSET,这样会显示所有输出。当获取非根Logger的时候,根Logger的默认级别是WARNING,非根Logger会继承这个级别,只有WARNING以上的日志才会输出。
级别 | 数值 |
---|---|
CRITICAL | 50 |
ERROR | 40 |
WARNING | 30 |
INFO | 20 |
DEBUG | 10 |
NOTSET | 0 |
日志对象
日志对象通过模块的getLogger(name)
函数获得,可以向该函数传递一个名称。如果不传递名字的话,就会获取根Logger。
日志对象常用方法如下。
方法名 | 作用 |
---|---|
setLevel(lvl) | 设置日志级别 |
isEnabledFor(lvl) | 检查某级别的日志是否启用 |
getEffectiveLevel() | 获取实际的日志级别 |
debug/warning/info/error(msg, *args, **kwargs) |
输出对应级别的日志 |
log(lvl, msg, *args, **kwargs) |
输出指定级别的日志 |
addFilter(filt)/removeFilter(filt) | 添加或删除指定的过滤器 |
addHandler(hdlr)/removeHandler(hdlr) | 添加或删除指定的处理器 |
Handler对象
日志对象用于输出日志,而Handler对象用于指定日志向哪里输出(文件、终端等等)。Handler列表可以参考Handler类型。