我希望在我正在开发的Python应用程序中添加一个自定义日志记录器。我认为Python的logging模块打算支持这种定制,但是我不知道它如何与typical way of using the logging module一起使用。通常情况下,你会在一个模块中创建一个logger对象,例如:
import logging
logger = logging.getLogger(__name__)
然而,在应用程序中的某个地方,可能是入口点,我将不得不告诉日志记录模块使用我的记录器类。
logging.setLoggerClass(MyLogger)
然而,这通常会在模块已经被导入并且日志记录器对象已经分配的情况下调用。我可以想到几种解决这个问题的方法(使用管理器类来注册日志记录器分配或为每个日志记录调用getLogger() -- yuk),但这不感觉正确,我想知道正确的做法是什么。