DEBUG
:最详细的日志信息,仅在开发时使用INFO
:一般的系统信息,仅限于开发中WARNING
警告:描述系统发生小问题的信息,但通常不影响功能ERROR
错误:描述系统发生大问题的信息,可能会导致功能不正常CRITICAL
严重错误:描述系统发生严重问题的信息,应用程序有崩溃的风险
日志等级:debug < info < warning < error < critical,而日志的信息量是依次减少的。一般使用debug和info级别日志获取尽可能详细的日志信息来开发或部署调试。
log的四大组件:
- loggers(记录器)日志系统的入口、
- Handlers(处理器)决定用何种方式处理记录器的信息、
- Filters(过滤器)决定哪些日志会被输出、
- Formatters(格式化器)主要功能是确定最终输出的形式和内容
日志的处理流程:一条日志信息想要被最终输出需要依次经过几次过滤,分别是:
- 日志器等级过滤
- 日志的过滤器过滤
- 日志的处理器等级过滤
- 日志的处理器的过滤器过滤
- 确定最终输出的形式和内容。
代码:
# 获取logger
logger = logging.getLogger(__name__)
# 配置处理策略
handler = logging.FileHandler("log.txt", encoding="utf-8")
# 格式处理--%(级别名字)s-%(时间)s-%(信息)s
formater = logging.Formatter("%(levelname)s-%(time)s-%(masagee)s")
# 格式工具绑定在处理器上
handler.setFormatter(formatter)
# 将自定义的处理者交给logger
logger.addHandler(handler)
logger.error()
Django作为一个重量级框架,都帮我们集成好了,直接在settings里面配置LOGGING={},定义版本,format定义格式,handlers配置处理策略,loggers配置handlers、level等级。使用的时候就放到视图函数里面就ok了。