天天看点

【10】Python3 - log日志模块日志相关概念logging模块

日志相关概念

  • 日志:
    • 在程序运行的关键点,定期记录一些关键的运行信息。日志属于I/O操作,所以只应该记录关键的信息,减少不必要的I/O操作。
  • 日志的level
    • DEBUG
    • INFO
    • NOTICE
    • WARNING
    • ERROR
    • CRITICAL
    • ALERT
    • EMERGENCY
  • 日志的作用:
    • 程序出现问题的时候,可以使用日志进行调试
    • 运维时,可以了解软件的运行情况
    • 分析定位问题
  • 日志信息内容
    • 时间、地点、level、内容
  • 第三方日志:
    • log4j、log4php、logging(python模块)

logging模块

  • 日志level
    • level可自定义
    • 模块内置的级别定义
      • DEBUG
      • INFO
      • WARNING (该级别以上,属于严重情况)
      • ERROR
      • CRITICAL
  • 初始化/写日志实例需要指定级别, 只有当级别等于或高于指定级别才被记录 (通常以WARNING为标准)

2.1 logging模块级别的日志

  • 使用以下几个函数 (msg是想写入log的消息内容)
    • logging.debug(msg, *args, **kwargs) 创建一条严重级别为DEBUG的日志记录
    • logging.info(msg, *args, **kwargs) 创建一条严重级别为INFO的日志记录
    • logging.warning(msg, *args, **kwargs) 创建一条严重级别为WARNING的日志记录
    • logging.error(msg, *args, **kwargs) 创建一条严重级别为ERROR的日志记录
    • logging.critical(msg, *args, **kwargs) 创建一条严重级别为CRITICAL的日志记录
    • logging.log(level, *args, **kwargs) 创建一条严重级别为level的日志记录(level可以指定)
    • logging.basicConfig(**kwargs) 对root logger进行一次性配置(就算配置100次,也只认第一次配置结果)
  • logging.basicConfig(**kwargs) 对root logger进行一次性配置
    • 只在第一次调用的时候起作用
    • logger可以不进行配置,如果不配置logger,则使用默认值
      • 输出: sys.stderr (控制台输出)
      • 级别: WARNING (低于WARNING级别的,不进行显示)
      • 格式: level:log_name:content (log_name是每个日志都具有的名字,默认为’root’)
  • format参数 :(查看案例u01-3)

2.2 logging模块四大组件

  • 日志器(Logger): 产生日志的一个接口
  • 处理器(Handler):把产生的日志发送到相应的目的地(一个处理器负责一个去向)
  • 过滤器(Filter): (level是粗级别的过滤),使用Filter进行更精细的控制哪些日志输出
  • 格式器(Formatter): 对输出信息进行格式化(更复杂的格式)
  • 考虑四大组件的关系

注:贴一个丰富的有关log的博客

本文是根据北京图灵学院的python课程整理的笔记,转载请注明出处哈~