小能豆

通过对象图理解 Python 日志记录

py

该图显示了设置 Python 日志记录对象的对象图。设置日志记录器对象后,正在进行的程序将只与(三个)日志记录器对象进行交互。

在这个对象图中,正确的对象用白色背景显示。标量用黄色背景显示。箭头是指针或设置。因此,从左侧文件处理程序到左上角文件处理程序日志级别的箭头表示后者是前者的参数。

1.png

答:记录器 2 和 3 共享相同的文件处理程序,因此它们的输出将会混合(按时间戳)。

B:记录器 1 使用不同的文件处理程序,因此它将有自己的输出文件。

C:该对象图可能涉及五种不同的日志级别。

这三种说法正确吗?


阅读 6

收藏
2025-01-13

共1个答案

小能豆

这三个说法都是正确的,但第三个说法有点奇怪。

答:记录器 2 和 3 共享相同的文件处理程序,因此它们的输出将会混合(按时间戳)。

请注意,记录器 2 和 3 可以有其他处理程序,它们可以共享更多处理程序或拥有自己的处理程序。每个记录器可以有多个处理程序。

B:记录器 1 使用不同的文件处理程序,因此它将有自己的输出文件。

一个记录器、一个处理程序、一个输出文件。很容易理解。

C:该对象图可能涉及五种不同的日志级别。

没错,但是与每个记录器关联的三个级别与与处理程序关联的级别有所不同。每个记录器上的级别告诉记录器完全忽略该级别以下的所有消息。因此,例如,如果您有一个处理 DEBUG 消息的处理程序,但该处理程序位于将 INFO 设置为级别的记录器上,则处理程序永远不会从该特定记录器发送 DEBUG 消息。因此,记录器将接收记录器级别或以上的所有消息,并将它们转发给其拥有的每个处理程序

2025-01-13