您没有在问题中说出您想要在控制台和文件记录上指定什么级别。但是,您不需要调用
basicConfig(),因为它只是一个便捷功能。您可以执行例如(输入的代码未经测试):
import logginglogger = logging.getLogger(__name__)configured = Falsedef 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首先将事件传递给记录器,如果要处理事件(由于比较记录器和事件的级别),则将事件传递给记录器的每个处理程序以及所有其祖先的处理程序。如果在处理程序上设置了级别,则该处理程序可能会丢弃该事件,否则它将输出该事件。



