29 lines
955 B
Python
29 lines
955 B
Python
|
|
import logging
|
||
|
|
from typing import Any, Awaitable, Callable, Dict
|
||
|
|
|
||
|
|
from aiogram import BaseMiddleware
|
||
|
|
from aiogram.types import Message, Update
|
||
|
|
|
||
|
|
logger = logging.getLogger(__name__)
|
||
|
|
|
||
|
|
|
||
|
|
class LoggingMiddleware(BaseMiddleware):
|
||
|
|
async def __call__(
|
||
|
|
self,
|
||
|
|
handler: Callable[[Message, Dict[str, Any]], Awaitable[Any]],
|
||
|
|
event: Message,
|
||
|
|
data: Dict[str, Any]
|
||
|
|
) -> Any:
|
||
|
|
logger.info("="*60)
|
||
|
|
logger.info(f"[MIDDLEWARE] Incoming message from user {event.from_user.id}")
|
||
|
|
logger.info(f"[MIDDLEWARE] Username: @{event.from_user.username}")
|
||
|
|
logger.info(f"[MIDDLEWARE] Text: {event.text}")
|
||
|
|
logger.info(f"[MIDDLEWARE] Message ID: {event.message_id}")
|
||
|
|
logger.info(f"[MIDDLEWARE] Chat ID: {event.chat.id}")
|
||
|
|
logger.info("="*60)
|
||
|
|
|
||
|
|
result = await handler(event, data)
|
||
|
|
|
||
|
|
logger.info(f"[MIDDLEWARE] Handler completed for message {event.message_id}")
|
||
|
|
return result
|