old_stalin
@old_stalin

Можно ли отправлять все ошибки из компилятора в какой то канал?

Хочу логировать все ошибки бота и отправлять их в какой-то канал, как отправлять в канал я знаю, но я не понимаю как логировать все, типо функция async def on_command_error реагирует только на ошибки написания команды пользователем, но как логировать ошибку внутри бота?

p.s это все в классе
from discord.ext.commands import Bot as BotBase
class Bot(BotBase):
...
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Нужно делать это отдельным ботом, а лучше даже не ботом, а просто курлом дёргать API и засылать туда сообщения логов.
Из самого бота это лучше не делать, особенно если речь о неожиданных ошибках.
Ожидаемые (штатные) ошибки вполне можно слать из того же инстанса, где бот крутится.
Итак, подключаете стандартный logging, настраиваете отдельный хендлер, фильтрующий нужный уровень сообщений, настраиваете форматтер. чтобы полноценный отчет об ошибке сформатировать.
Можно поискать готовую либу такого хендлера, наверняка есть в pipy, а можно и самостоятельно заморочиться.

Но нужно аккруатно. Необходимо понимать, что какие-то ошибки, особенно в случае их неправильной обработки, могут выпадать очень и очень часто, отчего вашего бота, который постит эти ошибки, просто забанят.

UPD/
Как я и говорил, полно готовых хендлеров:
https://pypi.org/project/python-telegram-handler/
https://pypi.org/project/python-telegram-logger/
https://pypi.org/project/logging2telegram/
https://pypi.org/project/tglogger/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы