📝 Логирование + graceful shutdown

- Добавлен app/logger.py — loguru с ротацией (консоль, файл, ошибки)
- main.py: логи старта/стопа, graceful shutdown (SIGTERM/SIGINT/stop_signal)
- Все хендлеры: логирование ключевых действий пользователя
- Логи сохраняются в logs/bot_YYYY-MM-DD.log, ротация 30 дней
- Ошибки отдельно в logs/errors_*
This commit is contained in:
DevProject Agent
2026-06-14 19:43:46 +04:00
parent 4c5f99856c
commit a6a1e0d8a9
10 changed files with 126 additions and 18 deletions
+5
View File
@@ -16,6 +16,7 @@ from app.keyboards.menu import menu, cancel_menu
from app.keyboards.calendar import get_dates_keyboard
from app.keyboards.time_slots import get_time_keyboard
from app.keyboards.confirm_booking import get_confirm_booking_keyboard
from app.logger import logger
router = Router()
@@ -55,6 +56,7 @@ async def choose_service(
services = SERVICES
service_name = services[callback.data]
logger.debug("User {uid} selected service: {srv}", uid=callback.from_user.id, srv=service_name)
await state.update_data(
service=service_name
@@ -84,6 +86,7 @@ async def choose_master(
masters = MASTERS
master_name = masters[callback.data]
logger.debug("User {uid} selected master: {m}", uid=callback.from_user.id, m=master_name)
await state.update_data(
master=master_name
@@ -118,6 +121,7 @@ async def choose_date(
await state.update_data(
date=selected_date
)
logger.debug("User {uid} selected date: {d}", uid=callback.from_user.id, d=selected_date)
data = await state.get_data()
@@ -156,6 +160,7 @@ async def choose_time(
await state.update_data(
time=selected_time
)
logger.debug("User {uid} selected time: {t}", uid=callback.from_user.id, t=selected_time)
data = await state.get_data()