python日志组件logging模块(一)

1、logging简介:

Logging是python自带的模块,这个模块支持输出不同级别的日志,可以 输出到控制台和写入文件,支持TCP、 HTTP、SMTP、Socket等 协议,将日志信息发送到网络等等。
  Logging提供5个等级的输出,CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET, 如果把looger的级别设置为INFO, 那么小于INFO级别的日志都不输出, 大于等于INFO级别的日志都输出
logging库提供了多个组件: Logger、Handler、Filter、Formatter:
  •  Logger      对象提供应用程序可直接使用的接口,供应用代码使用;
  •  Handler     发送日志到适当的目的地;
  • Filter          提供了过滤日志信息的方法,控制输出;
  •   Formatter  指定日志输出和显示的具体格式。

2、输出最简单的日志:


import logging
logging.getLogger().setLevel(logging.DEBUG)
logging.log(logging.DEBUG,"debug")
logging.getLogger().setLevel(logging.INFO)
logging.log(logging.INFO,"info")
logging.getLogger().setLevel(logging.WARNING)
logging.log(logging.WARNING,"warning")
logging.getLogger().setLevel(logging.ERROR)
logging.log(logging.ERROR,"error")
logging.getLogger().setLevel(logging.CRITICAL)
logging.log(logging.CRITICAL,"critical")

设置了日志级别之后,logging默认将大于等于此日志级别的信息输出,上面的是输出到控制台,如果想要输出到文件,加上下面代码就好

logging.getLogger().addHandler(logging.FileHandler('./log.txt'))

上面的例子给大家一个粗略的印象,下面在说下logging的日志输出,logging日志除了可以打印到控制台外,还有如下输出方式;
  • logging.StreamHandler   输出到标准输出
  • logging.FileHandler(filenamemode='a'encoding=Nonedelay=False)  输出到文件
  • logging.NullHandler
  • logging.handlers.RotatingFileHandler(filenamemode='a'maxBytes=0backupCount=0encoding=Nonedelay=0)。按照文件大小分文件
  • logging.handlers.TimedRotatingFileHandler(filenamewhen='h'interval=1backupCount=0encoding=Nonedelay=Falseutc=False)。 按照时间间隔生成到日志文件,归档的日志文件自动添加时间戳
  • logging.handlers.SocketHandler(hostport)。 发送到socket
  • logging.handlers.DatagramHandler(hostport)。 发送到udp
  • logging.handlers.SMTPHandler(mailhostfromaddrtoaddrssubjectcredentials=Nonesecure=None)。 发送到指定邮件
  • logging.handlers.BufferingHandler(capacity)。 发送到内存,超过限制时落地
  • logging.handlers.HTTPHandler(hosturlmethod='GET)。 http方式发送日志
具体使用时。通过logging.getLogger().addHandler()设置不同的句柄即可。

PS:下一个题目将使用logging的配置文件模块,在封装一个日志接口,这样,开发时直接配置需要使用哪种日志方式即可


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值