python-3.x - 调度程序和执行程序的 APScheduler 记录器

标签 python-3.x logging apscheduler

在我的应用程序中,我必须使用 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

但对我来说这看起来像是一个肮脏的 hack。为调度程序和执行程序设置记录器是否有任何正确的方法?

最佳答案

似乎它是在 BaseExecutor.start 中硬编码的:

def start(self, scheduler, alias):
    """
    Called by the scheduler when the scheduler is being started or when the executor is being added to an already
    running scheduler.

    :param apscheduler.schedulers.base.BaseScheduler scheduler: the scheduler that is starting this executor
    :param str|unicode alias: alias of this executor as it was assigned to the scheduler
    """

    self._scheduler = scheduler
    self._lock = scheduler._create_lock()
    self._logger = logging.getLogger('apscheduler.executors.%s' % alias)

参见:https://bitbucket.org/agronholm/apscheduler/src/c534d51a57638e8a8a51c36d4a4128b89f8beb22/apscheduler/executors/base.py?at=master

关于python-3.x - 调度程序和执行程序的 APScheduler 记录器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31963480/

相关文章:

logging - Grafana日志插件不显示日志面板

python - 在 Flask-APScheduler 作业中查询模型引发应用程序上下文 RuntimeError

python - 如何生成彼此不相交的正方形(位置随机,大小相等,随机旋转)?

Python zip 函数 - 奇怪的结果

c# - MVVM - 在 View 中显示来自多个模型实体的消息

php - PHP 中是否有等效的 print_r 或 var_dump 默认情况下不回显结果?

python - 如何在 APScheduler 中动态修改作业?

python - 使用 pyramid_mailer 和 apscheduler 发送预定的电子邮件

python - django 中的 "python manage.py migrate "到底做什么?

python - 即使使用当前 python 版本安装 Numpy 导入错误