在嘗試 python 的日志記錄模塊時,我遇到了一些意想不到的行為。我的猜測是,這是由于我的誤解,而不是錯誤,但我無法弄清楚出了什么問題(并且我在測試之前一直小心地重新啟動python內核,以確保根記錄器僅配置一次。import logginglogging.basicConfig(level=logging.CRITICAL)logger1 = logging.getLogger(__name__)logger1.debug("logger1 debug test")正如預期的那樣,沒有輸出日志消息。如果我按如下方式更改記錄器的級別:logger1.setLevel('DEBUG')logger1.debug("logger1 debug test")我得到預期的輸出:DEBUG:__main__:logger1 debug test但是,當我現在創建一個新的記錄器對象時,它似乎繼承了 logger1 的屬性,而不是 root 的屬性:logger2 = logging.getLogger(__name__)logger2.debug("logger2 debug test")其產生:DEBUG:__main__:logger2 debug test奇怪的是,logger2 仍然將根顯示為父級,但顯示級別為 10:print(logger2.__dict__){'filters': [], 'name': '__main__', 'level': 10, 'parent': <RootLogger root (CRITICAL)>, 'propagate': True, 'handlers': [], 'disabled': False, '_cache': {10: True}, 'manager': <logging.Manager object at 0x00000265147F2B48>}誰能解釋一下為什么 logger2 不默認為 0 (NOTSET) 級別?
添加回答
舉報
0/150
提交
取消