https://github.com/expressapp/pybotx-smartapp-smart-logger
https://github.com/expressapp/pybotx-smartapp-smart-logger
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/expressapp/pybotx-smartapp-smart-logger
- Owner: ExpressApp
- License: other
- Created: 2022-03-24T14:39:54.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2025-09-19T01:29:48.000Z (4 months ago)
- Last Synced: 2025-09-19T03:34:31.788Z (4 months ago)
- Language: Python
- Size: 85.9 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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 pybotx_smartapp_smart_logger import smartapp_exception_handler
smartapp = SmartAppRPC(
routers=...,
exception_handlers={Exception: smartapp_exception_handler}
)
```
5. Оборачиваем вызов `handle_smartapp_event` в контекстный менеджер:
```python
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 применять
Добавлять логи лучше везде, где информация из них поможет при диагностике ошибки. Например, здесь выводятся аргументы перед выполением деления.
```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)
```