Cat

AIOgram3 5.2. Создание структуры, продолжение

В этом посте продолжим на чём остановились в предыдущем и добавим логгер.

Все статьи

Icon Link

Дополнительные материалы

Icon Link

Реклама

Icon Link
Telegram-бот на AIOgram3 proDream 08 Август 2023 Просмотров: 1954

Не уходя из файла settings.py
Перенесём сюда инициализацию бота, а именно строку bot = Bot(token=Secrets.token) из файла main.py и сразу заменим содержимое на получение данных из класса Secrets:

from aiogram import Bot

bot = Bot(token=Secrets.token)

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

 

Импорт бота.

С файлом settings.py мы пока закончили. 
Перейдём в файл main.py и изменим импорты.
Было:

from aiogram import Bot, Dispatcher

Поменяем на:

from aiogram import Dispatcher  

from botlogic.settings import bot

 

Добавляем логгер.

Как вы помните, при запуске бота, не понятно, запустился он или нет, поскольку в терминале не было никаких данных. Давайте это исправим, добавив базовый логгер.
Перед переменной bot добавляем пустую строку и вставляем туда код логгера, а в начло файла добавляем строку импорта:

import logging

logging.basicConfig(
        level=logging.INFO,
        format="%(asctime)s - [%(levelname)s] -  %(name)s - (%(filename)s).%(funcName)s(%(lineno)d) - %(message)s"
    )

 

При запуске бота, будет инициализироваться метод basicConfig из втроенной библиотеки logging. В него мы передаём два параметра:

  • level - определяющий уровень выводимой информации. Основные уровни информирования: DEBUG, INFO, WARNING, ERROR.
  • format - определяющий формат выводимой информации.
    С уровнем логирования всё понятно, он будет выводить данные уровня INFO, то о переменных в формате стоит рассказать подробнее.

 

Строка лога состоит из 7ми переменных:

  • %(asctime)s — заменяется на текущее время в формате "год-месяц-день час:минута:секунда";
  • %(levelname)s — заменяется на уровень важности лога, в нашем случае INFO;
  • %(name)s — заменяется на имя логгера, который записывает сообщение;
  • %(filename)s — заменяется на имя файла, в котором была вызвана функция логирования;
  • %(funcName)s — заменяется на имя функции, в которой была вызвана функция логирования;
  • %(lineno)d — заменяется на номер строки, в которой была вызвана функция логирования;
  • %(message)s — заменяется на текст сообщения, переданного для записи в лог.

Автор

    Нет комментариев

    Реклама