Добавить в корзинуПозвонить
Найти в Дзене
python-book

Логирование Telegram bot

Доброго времени суток! В этой статье я покажу как можно сделать простое логирование действий в телеграм боте. Для испытаний я возьму бота из предыдущей статьи, который сохраняет полученные изображения, но я буду писать ему в основном только текст. Функция, которая будет записывать каждое сообщение боту в лог файл: def log(message): dtn = datetime.datetime.now()
botlogfile = open('TestBot.log', 'a', encoding="utf8")
text = ''
if message.text:
text = message.text
print(dtn.strftime("%d-%m-%Y %H:%M"), 'Пользователь ' + message.from_user.first_name, message.from_user.id, 'написал следующее: ' + text, file=botlogfile)
botlogfile.close() Создаём или открываем файл TestBot.log с кодировкой utf-8, для нормального отображения кириллицы, проверяем есть ли текст в сообщении, так как это может быть изображение или документ, после этого записываем в файл информацию (Дата, время, пользователь, сообщение). Теперь эту функцию мы вызываем в конце каждого обработчика сообщений. А также добавляем обработ

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

Функция, которая будет записывать каждое сообщение боту в лог файл:

def log(message):
dtn = datetime.datetime.now()
botlogfile = open('TestBot.log', 'a', encoding="utf8")
text = ''
if message.text:
text = message.text
print(dtn.strftime("%d-%m-%Y %H:%M"), 'Пользователь ' + message.from_user.first_name, message.from_user.id, 'написал следующее: ' + text, file=botlogfile)
botlogfile.close()
main.py
main.py

Создаём или открываем файл TestBot.log с кодировкой utf-8, для нормального отображения кириллицы, проверяем есть ли текст в сообщении, так как это может быть изображение или документ, после этого записываем в файл информацию (Дата, время, пользователь, сообщение).

Теперь эту функцию мы вызываем в конце каждого обработчика сообщений.

main.py
main.py

А также добавляем обработчик команды /logs , чтобы получать файл с логами от бота.

main.py
main.py

Конечно это можно настроить иначе, можно совсем не отправлять никуда этот файл, но это один из вариантов.

Теперь напишем что-нибудь боту и посмотрим в TestBot.log файл.

Telegram bot
Telegram bot

Теперь каждое моё сообщение боту будет отражено в лог файле, убедимся в этом:

TestBot.log
TestBot.log

Вот так и будут выглядеть логи.

Конечно это не окончательный вид, это можно и нужно дорабатывать, например логировать отправку изображений или документов.

А так выглядит получение файла с логами

Telegram bot
Telegram bot

Ссылка на программу:

logbot.py

Спасибо за просмотр статьи, не болейте!