想必日志对于问题定位的重要性,不言而喻吧
那此章节,我们就来梳理下logging模块日志的相关知识吧
一、logging日志流处理流程 基础知识
1. 四大组件
- Logger(日志器): 提供应用程序所使用的接口
- Handler(处理器):将logger创建的日志输出到指定的位置,如 文件,console控制台,网络等
- Filter(过滤器):更细粒度的控制具体是输出哪条日志
- Formatter(格式器):控制日志输出格式
2. 四大组件间关系:
Logger是入口,Handler是真正的执行者,Handler可以通过Filter 和 Formatter对需要输出的日志内容做过滤和格式化。
3.logging模块的日志级别
loggging模块将日志分为以下日志等级
- DEBUG: 最详细的日志信息,应用场景:问题诊断
- INFO: 关键节点信息,应用场景:记录预期的系统正常工作信息
- WARNING: 发生不期望的场景时需记录的信息,用作提示警醒,但是此时系统一切正常
- ERROR: 当某个问题产生导致某功能不能正常使用时需记录的信息
- CRITICAL:当发生严重的错误,导致系统无法继续正常运行
二、logging模块在Django项目中的应用
1. 日志配置(settings文件)
以下内容配置:控制台日志全部输出到文件、控制台console
import logging
LOGGING = {
'version': 1, # 指明dictConnfig的版本,目前就只有一个版本
'disable_existing_loggers': False, # 表示是否禁用所有的已经存在的日志配置
'formatters': {