Вход с объятиями и официанткой
Я хочу добавить ведение журнала в мое приложение 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
тоже, если вы хотите, чтобы там было видно отладочное сообщение.