我在Odoo开发期间在我的python函数中使用pdb.set_trace()
作为断点,并且我不断收到日志消息。
pdb.set_trace()
-> if s['confirm_state'] in ['draft','confirmed']:
(Pdb) 2015-04-05 05:40:12,794 9981 INFO vvm_odoo_new werkzeug: 127.0.0.1 - - [05/Apr/2015 05:40:12] "POST /longpolling/poll HTTP/1.1" 200 -
2015-04-05 05:40:47,769 9981 INFO vvm_odoo_new werkzeug: 127.0.0.1 - - [05/Apr/2015 05:40:47] "POST /longpolling/poll HTTP/1.1" 200 -
我首先想到的是,这是因为即时通讯功能,所以我取消了它。但我仍然不断收到这条消息。
这并不能阻止我使用pdb堆栈跟踪,但问题是这个终端消息一直显示在pdb跟踪点的输入之间。
答案 0 :(得分:2)
您可以在启动Odoo时将--logfile=<logfile>
添加到参数中 - 这会将标准Odoo日志消息发送到该文件,调试器日志保持良好和干净。
即。我在/ usr / local / bin中有一个bash脚本,它调用:
python /path/to/odoo/odoo.py --addons-path=/path/to/addons,/path/to/custom/addons "$@"
$@
告诉脚本最后接受任何其他参数,所以当我打电话时:
odoo --logfile=~/odoospam.log
我可以调试好看和整洁。
然后,如果您只想查看日志tail -f ~/odoospam.log
。
仍在尝试找出在docker容器中使用pdb进行调试的最佳方法,当我找到合适的方法时会更新它。
编辑:
在docker中找到了解决方法(Kudos to https://stackoverflow.com/users/941605/jamey):Docker-compose and pdb
docker-compose run --service-ports odoo
答案 1 :(得分:0)
我建议你安装Visual Studio Code来调试Odoo:
Visual Studio Code是Microsoft为Windows,Linux和macOS开发的源代码编辑器。它包括对调试,嵌入式Git控件,语法突出显示,智能代码完成,代码片段和代码重构的支持。它是免费和开源的,虽然官方下载是在专有许可下。
首先,您需要在VSCode中安装Python Extension。然后,如果要开始调试,只需单击“调试”按钮并单击侧栏顶部的滚轮即可。文件launch.json
将打开,您只需将此元素添加到底部。
{
"name": "Python: Odoo",
"type": "python",
"request": "launch",
"stopOnEntry": false,
"pythonPath": "${config:python.pythonPath}",
"console": "externalTerminal",
"program": "/odoo_path/odoo.py",
"args": [
"--config=/odoo_config_path/.odoo_8.conf",
],
"cwd": "${workspaceRoot}",
"env": {},
"envFile": "${workspaceRoot}/.env",
"debugOptions": [
"WaitOnAbnormalExit",
"WaitOnNormalExit",
"RedirectOutput"
]
}
添加后,您已经可以在VSCode下运行Odoo。有关启动配置click here
的详细信息现在您可以像往常一样创建断点。您也可以使用调试器控制台。如果你像我一样使用属性:"console": "externalTerminal"
,你可以同时在外部控制台中显示日志