Add middleware logging

This commit is contained in:
Zakhar Izmaylov
2024-11-09 12:20:07 +03:00
parent ca68eb58d3
commit 04c7616661
2 changed files with 39 additions and 0 deletions
+3
View File
@@ -13,6 +13,7 @@ from handlers.admin import admin, admin_panel, user_editor
from handlers.keys import key_management, keys
from handlers.payment import freekassa_pay, yookassa_pay
from middlewares.admin import AdminMiddleware
from middlewares.logging import UserActivityMiddleware
dp.include_router(admin.router)
dp.include_router(admin_panel.router)
@@ -28,3 +29,5 @@ dp.include_router(notifications.router)
dp.message.middleware(AdminMiddleware())
dp.callback_query.middleware(AdminMiddleware())
dp.message.middleware(UserActivityMiddleware())
dp.callback_query.middleware(UserActivityMiddleware())
+36
View File
@@ -0,0 +1,36 @@
from typing import Any, Awaitable, Callable, Dict
from aiogram import BaseMiddleware
from aiogram.types import CallbackQuery, Message, TelegramObject
from loguru import logger
class UserActivityMiddleware(BaseMiddleware):
async def __call__(
self,
handler: Callable[[TelegramObject, Dict[str, Any]], Awaitable[Any]],
event: TelegramObject,
data: Dict[str, Any],
) -> Any:
user_id = None
username = None
action = None
if isinstance(event, Message):
user_id = event.from_user.id
username = event.from_user.username
action = f"Message: {event.text}"
elif isinstance(event, CallbackQuery):
user_id = event.from_user.id
username = event.from_user.username
action = f"Callback: {event.data}"
# Логируем действие пользователя
logger.info(
f"User Activity - "
f"User ID: {user_id}, "
f"Username: {username}, "
f"Action: {action}"
)
# Продолжаем выполнение обработчика
return await handler(event, data)