logging 简介:
- logging 函数根据它们用来跟踪的事件的级别或严重程度来命名:
级别 | 何时使用 |
---|---|
DEBUG | 详细信息,调试问题时会感兴趣。 |
INFO | 事情按预期工作。 |
WARNING | 发生了一些意外,或者不久的将来会发生问题(如‘磁盘满了’)。软件还是在正常工作。 |
ERROR | 更严重的问题,软件已不能执行一些功能了。 |
CRITICAL | 严重错误,表明软件已不能继续运行了。 |
- logging 模块提供 logger,handler,filter,formatter:
- Loggers 提供应用程序代码直接使用的接口。
- Filters 提供粒度更好的工具用于决定输出哪些日志记录。
- Handlers 发送日志记录(由loggers创建)到正确的目标。
- Formatters 指出最终输出中的日志记录的格式。
- logging 处理流程:
- 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
网友评论