Debug¶
3 种 debug 方式¶
Adapter 本质是个消息系统,调试的关键是观察往来的消息。
目前有 3 种 debug 方式:
- 基于命令行的调试(只能看到消息)
- 基于日志的调试 (可以看到 log 信息)
我自己最偏好第一种:基于命令行的调试
。如果你希望看到logger信息,则使用第2种方式(基于日志的调试)。
下边逐一陈述。
基于命令行的调试¶
需要本地有 Python 环境(Python >= 3.6
)
安装pip install codelab_adapter_client --upgrade
codelab_adapter_client 会为你装上 2 个命令行调试工具:
- codelab-message-monitor
- codelab-message-trigger
- codelab-message-pub
运行codelab-message-monitor
,你将看到在 CodeLab Adapter 中所有往来的消息。这是我目前最依赖的工具。
你也可以自行构建更适合自己的调试脚手架,推荐使用 sh,这样你可以方便把 linux 工具箱里的工具都用上,同时又可以在 Python 语言中工作。
# pip install sh codelab_adapter_client # http://amoffat.github.io/sh/sections/asynchronous_execution.html#incremental-iteration import sh for line in sh.codelab_message_monitor(_iter=True): try: print(sh.ack("10",_in=line)) except: pass
基于日志的调试¶
我们在 hello world #调试技巧中提到了基于日志的调试。
在插件中打上日志:self.logger.info
,之后使用
tail -f ~/codelab_adapter/debug.log
tail -f ~/codelab_adapter/info.log
tail -f ~/codelab_adapter/error.log
便可实时查看日志。