Python 日志记录级别与处理程序级别

Python 日志记录级别与处理程序级别,python,logging,handler,Python,Logging,Handler,从记录器和处理程序设置日志记录级别有什么区别 以下代码: myLogging = logging.getLogger('myOp') myLogging.setLevel(10) hdlr = logging.FileHandler(myLogFile) myLogging.addHandler(hdlr) myLogging.debug("Message here") 将登录到myLogFile,但另一个不会: myLogging = logging.getLogger('myOp') hd

从记录器和处理程序设置日志记录级别有什么区别

以下代码:

myLogging = logging.getLogger('myOp')
myLogging.setLevel(10)
hdlr = logging.FileHandler(myLogFile)
myLogging.addHandler(hdlr)
myLogging.debug("Message here")
将登录到
myLogFile
,但另一个不会:

myLogging = logging.getLogger('myOp')
hdlr = logging.FileHandler(myLogFile)
hdlr.setLevel(10)
myLogging.addHandler(hdlr)
myLogging.debug("Message here")

为什么
FileHandler.setLevel()
不会写入
myLogFile

记录器
高于
处理程序
。您可以想象
处理程序
是一个过滤器。例如,您有一个带有两个处理程序的记录器:

myLogging = logging.getLogger('myOp')
myLogging.setLevel(10)

hdlr1 = xxx
hdlr2 = xxx
hdlr1.setLevel(20)
hdlr2.setLevel(30)

myLogging.addHandler(hdlr1)
myLogging.addHandler(hdlr2)
在这种情况下,
logger
本身将记录
10+
hdlr1
将记录比
hdl2
更多的信息(
20+
vs
30+

回到你的例子,虽然你已经设置了
hdlr.setLevel(10)
,但是假设你的
记录器的级别是
20
,这就像一个倒三角形