2
我不明白根記錄器和子記錄器之間的相互作用:爲什麼根記錄器接受來自子記錄器的日誌?
import logging
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# 1. SOME LOGGER
logger = logging.getLogger('logger')
logger.setLevel(logging.INFO)
# 2. ROOT LOGGER
rootLogger = logging.getLogger()
rootLogger.setLevel(logging.CRITICAL)
fh = logging.FileHandler('root.log')
fh.setLevel(logging.DEBUG)
fh.setFormatter(formatter)
rootLogger.addHandler(fh)
#
logger.info('hello')
最後一行logger.info('hello')
應該
- 通過
logger
接受,因爲它具有logger.setLevel(logging.INFO)
- 由
rootLogger
拒絕因爲它有rootLogger.setLevel(logging.CRITICAL)
但是在我的腳本結尾處,我有一個包含hello
的文件root.log
。爲什麼CRITICAL
級別不會阻止rootLogger
的消息?