我正在编写一个服务器应用程序,它应该能够在控制台和日志文件中以不同的级别记录日志。
问题是,如果设置了logging.basicConfig()
,它将记录到控制台,但必须在主线程中设置。
也可以使用logging.basicConfig(filename='logger.log')
设置为写入文件。
为控制台日志(logging.StreamHandler()
)或文件日志(logging.FileHandler()
)设置句柄,补充了logging.baseconfig()
选项设置。
问题是,这些设置不是独立的。我的意思是,logging.baseConfig()
的日志级别必须包括处理程序级别,否则不会记录日志。
因此,如果我将baseConfig
设置为记录到文件,并将StreamHandler
设置为记录到控制台,则文件日志级别必须低于控制台级别。(此外,basicConfig
选项记录所有其他日志。)
我尝试创建两个句柄,一个用于控制台,一个用于日志文件,它们可以工作,但是由basicConfig()
指定的任何日志类型仍将显示重复的消息。
有没有办法禁用basicConfig()
的输出?
或者有其他实现这些选项的方法吗?