#python #logging #wsgi #waitress #hug
#python #ведение журнала #wsgi #официантка #объятия
Вопрос:
Я хочу добавить ведение журнала в мое приложение для Python hug REST. Я не смог найти никакого способа сделать это при обслуживании приложения с помощью hug
команды (via hug -f app.py
), поэтому я пытаюсь объединить hug с waitress .
Моя минимальная структура приложения в файле app.py
выглядит следующим образом:
import logging
logger = logging.getLogger(__name__)
import hug
.
.
.
@hug.get()
def func(detail):
logger.debug("debug func")
.
.
.
И я обслуживаю это с помощью скрипта официантки run.py
:
import logging
import waitress
import app
logger = logging.getLogger('waitress')
logger.setLevel(logging.DEBUG)
logger.debug("logger set to DEBUG")
waitress.serve(app.__hug_wsgi__)
Когда я выполняю python run.py
в консоли, приложение хорошо запускается, и результаты func
возвращаются обратно, однако сообщения отладки изнутри func («debug func») и from run.py
(«logger настроен на ОТЛАДКУ») Я не вижу в консоли.
Что происходит не так и как я могу это исправить? (Я рад использовать другой (с поддержкой Windows) сервер WSGI, если это проще.)
Ответ №1:
Вы должны настроить ведение журнала для logging
модуля. Взгляните на документацию для logging.config
(в частности dictConfig
, и fileConfig
). Для начала, чтобы проверить, работает ли это, вы можете просто вызвать
logging.basicConfig()
app.py
перед тем, как вы начнете вести журнал. Это приведет к переходу на вывод всех каналов sys.stderr
.
Не забудьте также выполнить logging.setLevel(logging.DEBUG)
in app.py
, если вы хотите, чтобы там было видно сообщение debug.
Комментарии:
1. Вот и все. Спасибо.