您没有在问题中说出您想要在控制台和文件记录上指定什么级别。但是,您不需要调用basicConfig()
,因为它只是一个便捷功能。您可以执行例如(输入的代码未经测试):
import logging
logger = logging.getLogger(__name__)
configured = False
def configure_logging():
global configured
if not configured:
logger.setLevel(logging.DEBUG) # or whatever
console = logging.StreamHandler()
file = logging.FileHandler('/path/to/file')
#set a level on the handlers if you want;
#if you do, they will only output events that are >= that level
logger.addHandler(console)
logger.addHandler(file)
configured = True
首先将事件传递给记录器,如果要处理事件(由于比较记录器和事件的级别),则将事件传递给记录器的每个处理程序以及所有其祖先的处理程序。如果在处理程序上设置了级别,则该处理程序可能会丢弃该事件,否则它将输出该事件。