在我的应用程序中,我必须使用 apscheduler。我像这样为 BackgroundScheduler 设置记录器:
self.schedlogger = logging.getLogger("gwserver.{}.sched".format(type(self).__name__))
self.schedlogger.setLevel(logging.WARNING)
self.sched = BackgroundScheduler(logger=self.schedlogger)
self.sched.start()
确实调度程序使用了适当的记录器。但是调度程序内部的执行程序仍然使用默认值。为了克服这个问题,我不得不在上面的代码中添加一行:
self.sched._executors['default']._logger = self.schedlogger
但这对我来说看起来像是一个肮脏的黑客。为调度程序和执行程序设置记录器是否有任何正确的方法?