从记录器和处理程序设置日志记录级别有什么区别?
如下代码:
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
? 最佳答案
logger
高于handler
。您可以将handler
作为过滤器进行映像。例如,您有一个带两个处理程序的记录器:
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
将记录比hdlr2
(20+
与30+
)更多的信息。回到您的情况,尽管您已经设置了
hdlr.setLevel(10)
,但是假设您的logger
级别为20
,这就像一个倒三角形。