Логирование ошибок telebot в журнал journald

Есть бот, построенный на вебхуках. В качестве отладки ошибок используется journald (journalctl).

Бот построен на uvicorn, и веб-сервер вызывается непосредственно из точки входа "__main__". Там же я и указываю параметром, что нужно выводить все логи в журнал.

Иногда, когда бот выводит предупреждение, по типу что сообщение для редактирования не было найдено, или не был, к примеру, найден файл с таким идентификатором - то в консоли PyCharm обычно появлялось красное предупреждение.

введите сюда описание изображения Да и когда бот работал на getUpdates на сервере - эти предупреждения показывались в журнале. А после того как я поднял веб-сервер - данные сообщения не отображаются в журнале, что и есть для меня проблемой.

Журнал смотрю командой journalctl -u bot --since=-1h

...
 if __name__ == '__main__':
    # bot.polling(none_stop=True)
    uvicorn.run(app=app,
                host=config.HOST,
                port=config.PORT,
                access_log=True,
                # log_level='info', - это выводит всю информацию, но не предупреждения
                ssl_keyfile='pkey.pem',
                ssl_certfile='cert.pem')

Я пробовал указывать запуск systemd bot.service с флагом

ExecStart=/usr/lib/python3 -u /home/myname/bot/bot_example.py

но предупреждение до сих пор не выводится в логах.

Что можно предпринять? Я хочу, чтоб предупреждения выводились ИМЕННО в журнал journalctl.

UPD.

Я уже пробовал и такой способ:

import logging
from telebot import logger
logger.addHandler(logging.FileHandler('log.txt'))

В PyCharm на Windows результат записывается в файл, а вот на сервере Ubuntu - нет. С чем связано такое логирование?

Пробовал добавлять и flush к sys.stderr в логгере в исходниках pytelegrambotapi - безрезультатно

UPD2. Нашел способ добавить логгер непосредственно в uvicorn, но работает он только в режиме DEBUG, а вот в режиме ERROR почему-то пропускает ошибки. Как это можно решить?

log_config = uvicorn.config.LOGGING_CONFIG
log_config['loggers'].update({"TeleBot": {"handlers": ["access"], "level": "ERROR"}})

Ответы (0 шт):