gpt4 book ai didi

python - 如何为 apscheduler 指定 'logger'

转载 作者:太空宇宙 更新时间:2023-11-03 14:30:05 25 4
gpt4 key购买 nike

我正在尝试学习如何使用 Python 的 apscheduler 包,但它会定期抛出以下错误:

No handlers could be found for logger "apscheduler.scheduler"

此消息似乎与计划作业中的错误有关,例如,使用 jobTester 作为计划作业,以下代码在 jobTester 中使用 undefined variable (nameStr0)给出了上述错误消息:

from apscheduler.scheduler import Scheduler
from apscheduler.jobstores.shelve_store import ShelveJobStore
from datetime import datetime, timedelta
from schedJob import toyJob

def jobTester(nameStr):
outFileName = nameStr0 + '.txt'
outFile = open(outFileName,'w')
outFile.write(nameStr)
outFile.close()

def schedTester(jobList):
scheduler = Scheduler()
scheduler.add_jobstore(ShelveJobStore('example.db'),'shelve')
refTime = datetime.now()

for index, currJob in enumerate(jobList):
runTime = refTime + timedelta(seconds = 15)
jobName = currJob.name + '_' + str(index)
scheduler.add_date_job(jobTester, runTime, name = jobName,
jobstore = 'shelve', args = [jobName])


scheduler.start()
stopTime = datetime.now() + timedelta(seconds = 45)
print "Starting wait loop .....",
while stopTime > datetime.now():
pass
print "Done"

def doit():
names = ['Alan','Barbara','Charlie','Dana']
jobList = [toyJob(n) for n in names]
schedTester(jobList)

这可以通过如下运行此代码(存储在文件 schedTester.py 中)来查看:

>>> import schedTester
>>> schedTester.doit()
No handlers could be found for logger "apscheduler.scheduler"
Starting wait loop ..... Done

但是,当我用 nameStr 替换 nameStr0(即变量名称的正确拼写)时,代码运行正常,没有错误消息。

  1. 如何为 apscheduler.scheduler 创建记录器?我是否遗漏了有关配置调度程序的文档部分

  2. 我认为这个记录器是某种标准错误是否正确?如果是这样,我将在哪里寻找它(如果那不是由我设置它的方式决定的)

最佳答案

你可以只创建一个默认记录器,一切都应该交给它:

import logging
logging.basicConfig()

只有在使用 undefined variable 时才会出现问题的原因是,这会导致 jobTester 函数抛出错误,而 apscheduler 正在捕获并尝试写入错误带有 logging.error() 的消息。由于您尚未设置记录器,它会提示。

如果您继续阅读 python logging你会看到有很多方法可以配置它。您可以让它将所有内容记录到一个文件或将其打印到标准输出。

关于python - 如何为 apscheduler 指定 'logger',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12888977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com