import asyncio import logging from config import Config from utils.telegram import TelegramStarsBot logger = logging.getLogger(__name__) async def main(): try: config = Config() bot = TelegramStarsBot(config) await bot.start() except (ValueError, TypeError) as e: logger.critical(f"Ошибка в конфигурации или при запуске: {e}") except Exception as e: logger.critical(f"Фатальная ошибка при запуске бота: {e}") if __name__ == "__main__": logging.basicConfig( level=logging.INFO, format="%(asctime)s | %(levelname)s | %(name)s | %(message)s", handlers=[ logging.FileHandler("bot.log", encoding="utf-8"), logging.StreamHandler(), ], ) try: asyncio.run(main()) except KeyboardInterrupt: logger.info("Получен сигнал остановки, бот завершает работу") except Exception: logger.exception("Бот завершился из-за необработанной ошибки") raise