4

Heroku の夜間ジョブで Python スクリプトを実行しています。時々 (そして最近はもっと多く)、以下のエラーが原因でスクリプトの実行に失敗します。

2015-02-25T05:00:02.671242+00:00 app[clock.1]: No handlers could be found for logger "apscheduler.executors.default"

スクリプトは、Procfile で定義されている組み込みのクロック メソッドを使用して実行されます。

時計.py:

import sys
import logging

sys.path.append('main')

from main import main
from apscheduler.schedulers.blocking import BlockingScheduler

sched = BlockingScheduler()

# Executes every night at 5:00am UTC time | 12:00am (midnight) Winston-Salem, NC time
@sched.scheduled_job('cron', hour=5)
def scheduled_job():
    logging.basicConfig()
    main()

sched.start()

私は Web を検索しましたが、私が読んだいくつかの回答に基づいて、これはエラーではなく警告であると言われています。ただし、この問題が発生すると、スクリプト全体が失敗します。私の質問は最初です、これに対する修正はありますか?第二に、なぜこれが常にではなく時々起こるのでしょうか?

多くの人が、スクリプトに次を追加するだけだと言っています。

import logging
logging.basicConfig()

ご覧のとおり、私はそうしましたが、問題はまだ解決していません。

4

2 に答える 2

10
import logging

log = logging.getLogger('apscheduler.executors.default')
log.setLevel(logging.INFO)  # DEBUG

fmt = logging.Formatter('%(levelname)s:%(name)s:%(message)s')
h = logging.StreamHandler()
h.setFormatter(fmt)
log.addHandler(h)

私はこのような素敵なフォーマットで私の仕事をしました

于 2016-03-15T12:24:47.840 に答える