Вход с объятиями и официанткой

Я хочу добавить ведение журнала в мое приложение Python hug REST. Я не мог найти способ сделать это при обслуживании приложения через hug команда (через hug -f app.py), поэтому я стараюсь сочетать объятия с официанткой.

Моя минимальная структура приложения в файле 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 ("отладочная функция") и из run.py ("logger set to DEBUG") Я не вижу в консоли.

Что идет не так и как я могу это исправить? (Я рад использовать другой (с поддержкой Windows) WSGI-сервер, если это проще.)

1 ответ

Решение

Вы должны настроить ведение журнала для logging модуль. Посмотрите на документацию дляlogging.config (особенно dictConfig а также fileConfig). Для начала, чтобы проверить, работает ли он, вы можете просто позвонить

logging.basicConfig()

в app.py прежде чем делать какие-либо записи. Это заставит выход всех каналов перейти на sys.stderr,

Не забывай делать logging.setLevel(logging.DEBUG) в app.py тоже, если вы хотите, чтобы там было видно отладочное сообщение.

Другие вопросы по тегам