Skip to content

ExpressApp/pybotx-smartapp-smart-logger

Repository files navigation

pybotx-smartapp-smart-logger

Установка и использование

  1. Устанавливаем библиотеку:
poetry add pybotx-smartapp-smart-logger
  1. Подключаем pybotx-smart-logger по инструкции из README

  2. Подключаем pybotx-smartapp-rpc по инструкции из README

  3. Подключаем хендлер исключений к смартапу

from pybotx_smartapp_smart_logger import smartapp_exception_handler

smartapp = SmartAppRPC(
    routers=...,
    exception_handlers={Exception: smartapp_exception_handler}
)
  1. Оборачиваем вызов handle_smartapp_event в контекстный менеджер:
from pybotx_smart_logger import wrap_system_event

@collector.smartapp_event
async def handle_smartapp_event(event: SmartAppEvent, bot: Bot) -> None:
    with wrap_system_event(event, settings.DEBUG):
        await smartapp.handle_smartapp_event(event, bot)

Гдe применять

Добавлять логи лучше везде, где информация из них поможет при диагностике ошибки. Например, здесь выводятся аргументы перед выполением деления.

from pybotx_smart_logger import smart_log

@rpc.method("divide")
async def divide(
    smartapp: SmartApp, rpc_arguments: SumArgs
) -> RPCResultResponse[int]:
    smart_log(f"RPC method `divide` called with args: {rpc_arguments}")
    return RPCResultResponse(result=rpc_arguments.a / rpc_arguments.b)