• DEBUG:最详细的日志信息,仅在开发时使用
  • INFO:一般的系统信息,仅限于开发中
  • WARNING警告:描述系统发生小问题的信息,但通常不影响功能
  • ERROR错误:描述系统发生大问题的信息,可能会导致功能不正常
  • CRITICAL严重错误:描述系统发生严重问题的信息,应用程序有崩溃的风险

日志等级:debug < info < warning < error < critical,而日志的信息量是依次减少的。一般使用debug和info级别日志获取尽可能详细的日志信息来开发或部署调试。

log的四大组件:

  • loggers(记录器)日志系统的入口、
  • Handlers(处理器)决定用何种方式处理记录器的信息、
  • Filters(过滤器)决定哪些日志会被输出、
  • Formatters(格式化器)主要功能是确定最终输出的形式和内容

日志的处理流程:一条日志信息想要被最终输出需要依次经过几次过滤,分别是:

  1. 日志器等级过滤
  2. 日志的过滤器过滤
  3. 日志的处理器等级过滤
  4. 日志的处理器的过滤器过滤
  5. 确定最终输出的形式和内容。

代码:

# 获取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了。