日志相关概念
- 日志:
- 在程序运行的关键点,定期记录一些关键的运行信息。日志属于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课程整理的笔记,转载请注明出处哈~