Python中logging模块详解

  1. Python中logging模块详解
  2. logging.addLevelName()添加自定义级别
  3. logging.basicConfig()详解
  • logging API文档 基础教程 进阶教程

    这个模块为应用与库定义了实现灵活的事件日志系统的函数与类.

    日志是对软件执行时所发生事件的一种追踪方式。软件开发人员对他们的代码添加日志调用,借此来指示某事件的发生。一个事件通过一些包含变量数据的描述信息来描述(比如:每个事件发生时的数据都是不同的)。开发者还会区分事件的重要性,重要性也被称为 等级严重性

  • 日志级别

    级别何时使用
    DEBUG细节信息,仅当诊断问题时适用。
    INFO确认程序按预期运行
    WARNING表明有已经或即将发生的意外(例如:磁盘空间不足)。程序仍按预期进行
    ERROR由于严重的问题,程序的某些功能已经不能正常执行
    CRITICAL严重的错误,表明程序已不能继续执行

    默认的级别是WARNING,意味着只会追踪该级别及以上的事件(上表优先级递增),除非更改日志配置。这就是为什么常规来说,运行程序我们一般指挥看到WARNING和ERROR。

  • 一个简单的例子

    import logging
    logging.warning('Watch out!')  # will print a message to the console
    logging.info('I told you so')  # will not print anything
    

    在这里插入图片描述

    只显示WARNING信息,不显示INFO信息。

  • 追踪事件的处理方式

    1. 输出到控制台

      就像上图例子

    2. 写入磁盘文件

      在这里插入图片描述

      结果

      在这里插入图片描述

      此例,将log信息写入磁盘文件,不显示。通过level参数设置logging级别

      basicConfig() 的调用应该在 debug()info() 等的前面。因为它被设计为一次性的配置,只有第一次调用会进行操作,随后的调用不会产生有效操作。

  • 消息显示格式

    • 记录变量数据

      import logging
      logging.warning('%s before you %s', 'Look', 'leap!')
      

      使用字符串格式化

    • 更改显示格式,去除root

      import logging
      logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.DEBUG)
      logging.debug('This message should appear on the console')
      logging.info('So should this')
      logging.warning('And this, too')
      
    • 消息中显示日期时间

      import logging
      logging.basicConfig(format='%(asctime)s %(message)s')
      logging.warning('is when this event was logged.')
      

      '%(asctime)s’表示显示时间。

      import logging
      logging.basicConfig(format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')
      logging.warning('is when this event was logged.')
      

      basicConfig 提供 datefmt 参数改变时间显示格式


  • Reference

  1. 日志 HOWTO
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值