logging

logging 简介:

  • logging 函数根据它们用来跟踪的事件的级别或严重程度来命名:
级别 何时使用
DEBUG 详细信息,调试问题时会感兴趣。
INFO 事情按预期工作。
WARNING 发生了一些意外,或者不久的将来会发生问题(如‘磁盘满了’)。软件还是在正常工作。
ERROR 更严重的问题,软件已不能执行一些功能了。
CRITICAL 严重错误,表明软件已不能继续运行了。
  • logging 模块提供 logger,handler,filter,formatter:
    1. Loggers 提供应用程序代码直接使用的接口。
    2. Filters 提供粒度更好的工具用于决定输出哪些日志记录。
    3. Handlers 发送日志记录(由loggers创建)到正确的目标。
    4. Formatters 指出最终输出中的日志记录的格式。
  • logging 处理流程:
logging_第1张图片
logging_flow.png
  • Logger
    getLogger() 是Logger实例的引用,如果提供了名字就返回对应名字的Logger,否则返回 root。名字是由点分隔的层级结构。层级结构中较低层级的Logger是较高层级Logger的子节点。例如,对于名为 foo 的Logger,记录器 foo.bar、 foo.bar.baz
    和 foo.bam 都是 foo 的后代。
    Logger有effective level/有效级别的概念。如果一个记录器没有显式地设置级别,那它父节点的级别被用作有效级别。root 为所有Logger的父节点。
    Logger.propagate 构造函数设置该属性为True

你可能感兴趣的:(logging)