Logger.setLevel(level)
设置记录器的级别为level。低于该级别的信息将被忽略。
记录器默认级别为NOTSET。如果记录器是根记录器,则默认将记录所有信息;
如果是一个非根记录器,默认会沿着一个“链”向上寻找,直到找到一个级别为非NOTSET为止,并把该记录器级别作为自己的级别;
如果到达根记录器还没找到级别为非NOTSET的记录器,则所有信息被记录。
注意使用WARNING级别创建根记录器。
logging.getLogger(name=None)
生成一个指定名称的记录器。名称为“.”分隔的形式,如'a','a.b'或'a.b.c.d'。
如果名称为None,则生成一个根记录器。
class logging.StreamHandler(stream=None)
StreamHandler类将记录输出发送到诸如sys.stdout,sys.stderr或任何类似文件的对象(或更准确地说,任何支持write()和flush()方法的对象) 。
返回StreamHandler类的新实例。如果指定了流,则实例将使用它来记录输出;否则,将使用sys.stderr。
class logging.Formatter(fmt=None,datefmt=None,style='%')
返回Formatter类的新实例。
fmt为消息字符串,datefmt为日期/时间字符串。
如果没有指定fmt,则使用'%(message)'。如果没有指定datefmt,则使用ISO8601日期格式。
style参数可以是'%','{'或'$'之一,用于确定格式字符串如何与其数据合并。
常用的fmt和datefmt如下:
frm = '%(levelname)-.3s [%(asctime)s.%(msecs)03d] thr=%(_threadid)-3d %(name)s: %(message)s'
'%Y%m%d-%H:%M:%S'
注:上表是格式化样式。
Handler.setFormatter(表格)
设置格式。
Logger.addHandler(hdlr)
将指定的处理程序hdlr添加到此记录器。
一个完整的例子
l = logging.getLogger("paramiko")
if len(l.handlers) > 0: #handlers为处理程序的集合,列表类型
return
l.setLevel(level)
f = open(filename, 'a') #a表示以追加模式打开
lh = logging.StreamHandler(f)
frm = '%(levelname)-.3s [%(asctime)s.%(msecs)03d] thr=%(_threadid)-3d %(name)s: %(message)s' # noqa
lh.setFormatter(logging.Formatter(frm, '%Y%m%d-%H:%M:%S'))
l.addHandler(lh)
及时行乐