在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跟踪点输入之间,这个终端消息总是出现。
发布于 2016-03-22 01:21:06
您可以在启动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
发布于 2017-12-09 08:37:51
我建议你安装来调试Odoo:
Microsoft Code是微软公司开发的适用于
、Linux和macOS的源代码编辑器。它包括对调试、嵌入式Git控件、语法突出显示、智能代码完成、代码片段和代码重构的支持。它是免费和开源的,尽管官方下载是在私有许可下进行的。
首先,您需要在VSCode中安装。然后,如果您想要开始调试,只需单击Debug按钮,然后单击侧边栏顶部的滚轮。文件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",则可以同时在外部控制台中显示日志

https://stackoverflow.com/questions/29454507
复制相似问题