From 6a3c9c74b96775b1f7dc52524945bafcaec5451f Mon Sep 17 00:00:00 2001 From: Arseniy Zhiltsov Date: Thu, 5 May 2022 18:25:05 +0300 Subject: [PATCH] Update README --- README.md | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..3cb4812 --- /dev/null +++ b/README.md @@ -0,0 +1,51 @@ +# pybotx-smartapp-smart-logger + +## Интеграция [pybotx-smart-logger](https://github.com/ExpressApp/pybotx-smart-logger) и [pybotx-smartapp-rpc](https://github.com/ExpressApp/pybotx-smartapp-rpc) + +## Установка и использование + +1. Устанавливаем библиотеку: +```bash +poetry add pybotx-smartapp-smart-logger +``` + +2. Подключаем `pybotx-smart-logger` по инструкции из [README](https://github.com/ExpressApp/pybotx-smart-logger/blob/master/README.md) + +3. Подключаем `pybotx-smartapp-rpc` по инструкции из [README](https://github.com/ExpressApp/pybotx-smartapp-rpc/blob/master/README.md) + +4. Подключаем хендлер исключений к смартапу + +```python +from botx_smartapp_smart_logger import smartapp_exception_handler + +smartapp = SmartAppRPC( + routers=..., + exception_handlers={Exception: smartapp_exception_handler} +) +``` + +5. Оборачиваем вызов `handle_smartapp_event` в контекстный менеджер: + +```python +from botx_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 применять + +Добавлять логи лучше везде, где информация из них поможет при диагностике ошибки. Например, здесь выводятся аргументы перед выполением деления. + +```python +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) +```