При использовании PyMongo не удалось найти обработчики для регистратора «apscheduler.scheduler»

#python #python-2.7 #pymongo #apscheduler

#python #python-2.7 #pymongo #apscheduler

Вопрос:

Код работает нормально, выводя на экран hello каждую секунду. Это делается с помощью bar метода, который добавляется в планировщик в качестве задания.

Проблема: однако, когда строка self.db.animals.insert_one({'name': 'lion'}) добавляется в bar метод, запуск скрипта выдает ошибку

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

и скрипт останавливается. Есть идеи, что произошло и как мы можем это решить?

 from apscheduler.schedulers.blocking import BlockingScheduler
import pymongo

class Foo(object):

    def __init__(self, db, interval=1):
        self.interval = interval
        self.db = db
        self.sched = BlockingScheduler()
        self.sched.add_job(self.bar, 'interval', seconds = interval)

    def start(self):
        self.sched.start()

    def stop(self):
        self.sched.shutdown()

    def bar(self):
        print 'hello'
        self.db.animals.insert_one({'name': 'lion'})


client = pymongo.MongoClient("localhost", 27017)
db = client.earth
foo = Foo(db, 0.2)
foo.start()
  

Ответ №1:

Это не ошибка, а предупреждение. Система ведения журнала Python пытается сообщить вам, что у нее нет выхода для вывода журнала, потому что вы его не настроили. Попробуйте использовать logging.basicConfig(level=logging.DEBUG) .