python学习之logging模块

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) 
原文地址:https://www.cnblogs.com/leomei91/p/7610079.html