feat: add entry script with logging
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
import asyncio
|
||||
import logging
|
||||
|
||||
from config import Config
|
||||
from 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
|
||||
Reference in New Issue
Block a user