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