21 lines
951 B
Python
21 lines
951 B
Python
import logging
|
|
from collections.abc import Awaitable, Callable
|
|
from typing import Any
|
|
|
|
from aiogram.dispatcher.middlewares.base import BaseMiddleware
|
|
from aiogram.types import TelegramObject
|
|
|
|
|
|
class LoggingMiddleware(BaseMiddleware):
|
|
"""Мидлвар для логирования всех входящих обновлений. Логирует тип и содержимое обновления. Логи сохраняются в файл bot.log и выводятся в консоль."""
|
|
|
|
async def __call__(
|
|
self,
|
|
handler: Callable[[TelegramObject, dict[str, Any]], Awaitable[Any]],
|
|
event: TelegramObject,
|
|
data: dict[str, Any],
|
|
) -> Any:
|
|
"""Выполняет логирование входящего обновления и передает его дальше по цепочке обработки."""
|
|
logging.info('Update: %s', event)
|
|
return await handler(event, data)
|