日志模块

Day42 logging日志模块免费看

标准库中的logging模块,第三方日志模块structlog,自定义全局日志模块

08-28侠课岛    基础入门       

后端/后端/Python 由浅入深入门 14     0     273

总结

1.什么是日志级别

  • 日志级别是日志的严重程度;

  • warning是默认的日志级别,criticalerror的级别高于warning,而infodebug级别低于warning

  • 如果设置的日志级别低于logging模块设置的级别,那么将被忽略;

2.日志格式参数

  • %(levelno)s:打印日志级别的数值;

  • %(levelname)s:打印日志级别的名称;

  • %(pathname)s:打印当前执行程序的路径,其实就是sys.argv[0];

  • %(filename)s:打印当前执行程序名;

  • %(funcName)s:打印日志的当前函数;

  • %(lineno)d:打印日志的当前行号;

  • %(asctime)s:打印日志的时间;

  • %(thread)d:打印线程ID;

  • %(threadName)s:打印线程名称;

  • %(process)d:打印进程ID;

  • %(processName)s:打印线程名称;

  • %(module)s:打印模块名称;

  • %(message)s:打印日志信息;

3.日志时间格式化

  • 使用datefmt来设置打印时间的格式,如打印年月日时分秒:datefmt='%Y-%m-%d %H:%M:%S'

4.日志输出处理 Handler

  • handler的level级别必须大于等于logger实例的level级别才有意义,如果日志的级别低于logger的级别是无法进入到logger的;

  • 日志的输出可以是控制台,可以是文件, 默认是终端 stderr;

  • logger实例有继承关系,如果子logger没有设置level和handler,那么从父logger中继承;

  • 每一个logger实例,默认有一个handler,StreamHandler;

  • 每一个logger实例都有一个propagate属性,控制日志信息是否向父类传递, 默认propagate为True,则向父类传递日志信息;

5.如何安装第三方日志模块structlog

  • 安装命令行:pip install structlog

  • 如果需要带颜色打印,可以在命令行后面加colorama,不过最好不要使用带颜色打印,会有转义字符;

6.第三方日志模块structlog的使用

  • 首先需要导入structlog模块,然后import get_logger类;

  • 接着使用get_logger进行实例化,得到实例对象log;

  • 最后就可以直接使用实例对象log进行打印了;

7.自定义全局日志模块

  • 使用标准库logging模块封装全局日志;

  • 首先需要构造一个类,然后初始化这个类,设置对应五个日志级别的五个函数,最后实例化这个类,就可以通过实例对象直接打印了;

本教程图文或视频等内容版权归侠课岛所有,任何机构、媒体、网站或个人未经本网协议授权不得转载、转贴或以其他方式复制发布或发表。

评价

14

本课评分:
  •     非常好
难易程度:
  •     适中的

内容目录



|
教程
粉丝
主页

签到有礼

已签到2天,连续签到7天即可领取7天全站VIP

  • 1
    +2 金币
  • 2
    +3 金币
  • 3
    +5 金币
  • 6
    +7 金币
  • 5
    +6 金币
  • 4
    暖心福利
    自选分类VIP ×1天
  • 7
    惊喜大礼

    自选分类VIP ×3天 +20金币
  • 持续签到 +8 金币

金币可以用来做什么?