logging

logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志的保存路径、日志文件回滚等。

日志的等级(从低到高)

  • debug:调试代码用的,信息比较信息。
  • info:输出正确的信息,按照正确的代码运行。
  • warning:警告,但不影响正常运行。
  • error:错误问题, 一些功能无法执行。
  • critical:严重的错误,表明程序本身可能无法继续运行。
    默认等级是warning及以上的问题被抓到。

logging模块

logging模块包括logger、handler、filter、formatter四个部分。

  • logger:记录器,用于设置日志采集。
  • handler:处理器,将日志记录发送至合适的路径。
  • filter:过滤器,提供了更好的粒度控制,可以决定输出哪些日志记录。
  • formatter:格式化器,指明最终输出中日志的格式。

配置logging的三种方式

  • 基础配置,logging.basicConfig(filename='config.log', filename='w', format='%(asctime)s-%(name)s-%(levelname)s-%(message)s', level=logging.INFO)
    在这里插入图片描述

  • 使用配置文件的方式配置logging,使用fileConfig(filename, defaults=None, disable_existing_loggers=True)函数来读取配置文件。

  • 使用一个字典方式来写配置信息,然后使用dictConfig(dict, defaults=None, disable_existing_loggers=True)函数来完成logging的配置。

日志回滚

比如日志文件是chat.log,当chat.log达到指定的大小之后,RotatingFileHandler自动把文件改名为chat.log.1。不过,如果chat.log.1已经存在,会先把chat.log.1重命名为chat.log.2。最后重新创建 chat.log,继续输出日志信息。
在这里插入图片描述

示例

    now_time = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S')
    logging.basicConfig(level=logging.DEBUG)
    formatter = logging.Formatter('%(asctime)s: %(levelname)s %(message)s')
    # log
    Rthandler = RotatingFileHandler(filename='%s%s%s'%(args.log_folder,now_time,'.log'), \
                                   maxBytes=2*1024*1024, backupCount=10)
    Rthandler.setLevel(logging.DEBUG)
    Rthandler.setFormatter(formatter)
    logging.getLogger('').addHandler(Rthandler)

参考资料

logging.basicConfig()简单使用
python之logging.basicConfig
Python日志文件的回滚模块RotatingFileHandler.日志文件大小,日志文件数量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值